using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; using DevExpress.XtraGrid; using Gs.DevApp.ToolBox; namespace UserControls.Data { public partial class PageBar : UserControl { public delegate void GetPageDataEvents(int curPage, int pageSize);//定义委托 public event GetPageDataEvents williamPagerEvent;//定义事件 public PageBar() { InitializeComponent(); // UtilityHelper.SetFont(layoutControl1); } #region 定义属性 int _TotalPages; /// /// 总页数 /// public int TotalPages { get { return _TotalPages; } set { _TotalPages = value; } } /// /// 当前页 /// public int CurrentPage { get; set; } /// /// 每页条数 /// public int RowsCount { get; set; } /// /// 总记录数 /// public int RecordCount { get; set; } #endregion //选择每页显示条数 private void cbxRowCount_SelectedIndexChanged(object sender, EventArgs e) { RowsCount = Convert.ToInt32(cbxRowCount.Text); CurrentPage = 1; if (williamPagerEvent != null) BtnEvents(sender, e); } //手动输入显示页面编号 private void tbxCurrentPage_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { int page = Convert.ToInt32(tbxCurrentPage.Text); if (page < 1) { CurrentPage = 1; } else if (page > TotalPages) { CurrentPage = TotalPages; } else { CurrentPage = page; } if (williamPagerEvent != null) BtnEvents(sender, e); } } //点击首页按钮 private void lbFirstPage_Click(object sender, EventArgs e) { if (CurrentPage == 1) return; CurrentPage = 1; if (williamPagerEvent != null) BtnEvents(sender, e); } //点击上一页按钮 private void lbPrePage_Click(object sender, EventArgs e) { if (CurrentPage == 1) return; if (CurrentPage <= TotalPages) { CurrentPage -= 1; } if (williamPagerEvent != null) BtnEvents(sender, e); } //点击下一页按钮 private void lbNextPage_Click(object sender, EventArgs e) { if (CurrentPage == TotalPages) return; if (CurrentPage < TotalPages) { CurrentPage += 1; } if (williamPagerEvent != null) BtnEvents(sender, e); } //末页按钮 private void lbEnd_Click(object sender, EventArgs e) { if (CurrentPage == TotalPages) return; CurrentPage = TotalPages; if (williamPagerEvent != null) BtnEvents(sender, e); } private void BtnEvents(object sender, EventArgs e) { //setTxt(); williamPagerEvent(CurrentPage, RowsCount); } public void setTxt() { tbxCurrentPage.Text = CurrentPage.ToString(); lbTotalPages.Text = "共 " + TotalPages.ToString() + "页"; lbTotalRows.Text = "共 " + RecordCount.ToString() + " 条记录"; this.cbxRowCount.Text = this.RowsCount.ToString(); if (CurrentPage == 1) lbFirstPage.Enabled = false; else lbFirstPage.Enabled = true; if (CurrentPage == TotalPages) lbEnd.Enabled = false; else lbEnd.Enabled = true; if (CurrentPage == 1) lbPrePage.Enabled = false; else lbPrePage.Enabled = true; if (CurrentPage == TotalPages) lbNextPage.Enabled = false; else lbNextPage.Enabled = true; } } }