using DevExpress.XtraEditors; using System.Windows.Forms; using System; namespace ProductionSystem_UserControl.CompositeControls { public partial class GridPage : XtraUserControl { public int DataCount = 0; public int PageSize = 20; public int PageIndex = 1; public int[] PageSizeList = new int[] { 10, 20, 30, 50 }; public delegate void PagerEvents(); public event PagerEvents OnPagerEvents; public GridPage() { InitializeComponent(); Load += (s, e) => { BindConfig(); }; } /// /// 绑定配置 /// private void BindConfig() { cmbPageSize.Properties.Items.AddRange(PageSizeList); cmbPageSize.EditValue = PageSize.ToString(); cmbPageSize.RefreshEditValue(); cmbPageSize.SelectedIndexChanged += (s, e) => { try { var combo = s as ComboBoxEdit; int selectPageSize = Convert.ToInt32(combo.SelectedItem.ToString()); if (OnPagerEvents != null) { PageSize = selectPageSize; IsEnable(); OnPagerEvents(); } } catch (Exception) { } }; btnFirst.Click += (s, e) => { if (OnPagerEvents != null) { PageIndex = 1; IsEnable(); OnPagerEvents(); } }; btnPre.Click += (s, e) => { if (OnPagerEvents != null) { if (PageIndex > 1) PageIndex -= 1; IsEnable(); OnPagerEvents(); } }; btnNext.Click += (s, e) => { if (OnPagerEvents != null) { if (PageIndex < GetTotalCount()) PageIndex += 1; IsEnable(); OnPagerEvents(); } }; btnLast.Click += (s, e) => { if (OnPagerEvents != null) { PageIndex = GetTotalCount(); IsEnable(); OnPagerEvents(); } }; txtCurentPage.KeyUp += (s, e) => { try { var curIndex = Convert.ToInt32(txtCurentPage.Text); if (curIndex >= 1 && curIndex <= GetTotalCount()) { PageIndex = curIndex; if (OnPagerEvents != null) { IsEnable(); OnPagerEvents(); } } else { txtCurentPage.Text = PageIndex.ToString(); } } catch (Exception) { } }; } /// /// 设置分页控件 /// /// /// /// public void RefreshPager(int pageIndex, int pageSize, int dataCount) { try { PageIndex = pageIndex; PageSize = pageSize; DataCount = dataCount; var pageCount = GetTotalCount(); txtCurentPage.Text = PageIndex.ToString(); lblDesc.Text = $"共{DataCount}条 {PageIndex}/{pageCount} 页"; if (PageIndex == 0) { if (pageCount > 0) { PageIndex = 1; OnPagerEvents(); } } if (PageIndex > pageCount) { PageIndex = pageCount; //OnPagerEvents(); } IsEnable(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } /// /// 设置状态 /// public void IsEnable() { try { var pageCount = GetTotalCount(); if (DataCount == 0) { btnFirst.Enabled = false; btnPre.Enabled = false; btnNext.Enabled = false; btnLast.Enabled = false; } if (PageIndex == 1 || PageIndex == 0) { btnFirst.Enabled = false; btnPre.Enabled = false; } else { btnFirst.Enabled = true; btnPre.Enabled = true; } if (PageIndex == pageCount) { btnNext.Enabled = false; btnLast.Enabled = false; } else { btnNext.Enabled = true; btnLast.Enabled = true; } if (pageCount > 1) { txtCurentPage.Enabled = true; } else { txtCurentPage.Enabled = false; } } catch (Exception) { } } /// /// 获得总页数 /// /// public int GetTotalCount() { int count; if (DataCount % PageSize == 0) count = DataCount / PageSize; else count = DataCount / PageSize + 1; return count; } } }