在某些情况下有必要通过DataTable进行分页处理


1 /// <summary>
2 /// 对DataTable进行分页,起始页为1
3 /// </summary>
4 /// <param name="dt"></param>
5 /// <param name="PageIndex"></param>
6 /// <param name="PageSize"></param>
7 /// <returns></returns>
8 public static DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)
9 {
10 if (PageIndex == 0)
11 return dt;
12 DataTable newdt = dt.Copy();
13 newdt.Clear();
14
15 int rowbegin = (PageIndex - 1) * PageSize;
16 int rowend = PageIndex * PageSize;
17
18 if (rowbegin >= dt.Rows.Count)
19 return newdt;
20
21 if (rowend > dt.Rows.Count)
22 rowend = dt.Rows.Count;
23 for (int i = rowbegin; i <= rowend - 1; i++)
24 {
25 DataRow newdr = newdt.NewRow();
26 DataRow dr = dt.Rows[i];
27 foreach (DataColumn column in dt.Columns)
28 {
29 newdr[column.ColumnName] = dr[column.ColumnName];
30 }
31 newdt.Rows.Add(newdr);
32 }
33
34 return newdt;
35 }