日期:2014-05-18 浏览次数:21071 次
效果如图:
首先在项目中添加用户控件:
用户控件中添加属性和系统方法,则会在控制面板中可以更改属性和添加控件事件,分页控件这里定义两个属性,每页显示记录数和当前页数,当改变当前页数时,将触发事件,代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar.Controls; using System.Data.SqlClient; namespace BaseForm.UserControls { public partial class PageBar : UserControl { public event EventHandler PageChanged; //事件:控件的当前页码发生变更。 /// <summary> /// PageBar分页控件所关联的DataGridView数据控件,当PageBar分页控件执行DataBind()数据绑定 /// 方法时,PageBar分页控件会自动将分页后的数据,绑定给关联的DataGridView控件进行显示。 /// </summary> public DataGridViewX DataControl //这里因为使用了第三方界面控件DotNetBar, 所以为DataGridViewX { get; set; } /// <summary> /// PageBar分页控件的数据源,数据源为数据实体层中所定义的PageData类型。 /// </summary> public PageData DataSource { get; set; } /// <summary> /// 控件实例化方法 /// </summary> public PageBar() { InitializeComponent(); } /// <summary> /// 进行数据绑定,将数据源中的IList类型数据,绑定给关联的数据控件进行显示。 /// </summary> public void DataBind() { if (DataSource == null) return; labNumber.Text= "共" + DataSource.RecordCount.ToString() + "条记录,每页" + DataSource.PageSize.ToString() + "条,共"+DataSource.PageCount.ToString()+"页";//为用户控件的Label赋值 txtCurPage.Text= DataSource.CurPage.ToString();//当前页数 DataControl.AutoGenerateColumns = false; DataControl.DataSource = DataSource.PageList.Tables[0].DefaultView;//绑定DataGridiew } /// <summary> /// 用户单击“首页”按钮时的事件处理方法。 /// </summary> private void btnFirstPage_Click(object sender, EventArgs e) { CurPage = 1; } /// <summary> /// 用户单击“上一页”按钮时的事件处理方法。 /// </summary> private void btnPrePage_Click(object sender, EventArgs e) { CurPage = DataSource.PrevPage; } /// <summary> /// 用户单击“下一页”按钮时的事件处理方法。 /// </summary> private void btnNextPage_Click(object sender, EventArgs e) { CurPage = DataSource.NextPage; } /// <summary> /// 用户单击“最后一页”按钮时的事件处理方法。 /// </summary> private void btnLastPage_Click(object sender, EventArgs e) { CurPage = DataSource.PageCount; } #region PageBar控件的相关变量及属性定义 private int pageSize; private int curPage; /// <summary> /// 每页显示记录数。 /// </summary> public int PageSize { get { if (pageSize <= 0) { pageSize = 10; } return pageSize; } set { pageSize = value; } } /// <summary> /// 当前页数 /// </summary> public int CurPage { get { if (curPage <= 0) { curPage = 1; } return curPage; } set { curPage = value; if (PageChanged != null) { PageChanged(this, null);//触发当件页码变更事件。 } } } #endregion } }PageData类是用户控件需要赋值的一些属性,即数据实体层,代码如下: