本文共 1990 字,大约阅读时间需要 6 分钟。
本方法只适用小数据量分页,因为不是SQL分页,而是直接用利用datatable分页生成新的datatable。
1)加入datatable分页方法:
(下面方法转自http://space.itpub.net/12639172/viewspace-545463)
///2)引用分页控件,可以用里面所介绍的。/// 将DataTable进行分页并生成新的DataTable /// /// 原DataTable /// 需要的第n页 /// 每页页数 ///新的DataTable public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize) { if (PageIndex == 0) { return dt; } DataTable newdt = dt.Copy(); newdt.Clear(); //起始行数 int rowbegin = (PageIndex - 1) * PageSize; //结束行数 int rowend = PageIndex * PageSize; if (rowbegin >= dt.Rows.Count) { return newdt; } if (rowend > dt.Rows.Count) { rowend = dt.Rows.Count; } //生成新的DataTable for (int i = rowbegin; i <= rowend - 1; i++) { DataRow newdr = newdt.NewRow(); DataRow dr = dt.Rows[i]; foreach (DataColumn column in dt.Columns) { newdr[column.ColumnName] = dr[column.ColumnName]; } newdt.Rows.Add(newdr); } return newdt; }
3)绑定数据和分页控件:
public Form2() { InitializeComponent(); pagerControl1.OnPageChanged += new EventHandler(pagerControl1_OnPageChanged); LoadData(); } void LoadData() { DataTable dtSrc = "数据源"; int count = dtSrc.Rows.Count; if (count > 0) { DataTable dt = GetPagedTable(dtSrc, pagerControl1.PageIndex, pagerControl1.PageSize); dgData.DataSource = dt; pagerControl1.DrawControl(count); } } private void pagerControl1_OnPageChanged(object sender, EventArgs e) { LoadData(); }
转载地址:http://mmzrf.baihongyu.com/