在实现前台动态显示数据时有多种方法,但使用到将DataSet中的数据分页这一方法时发现很多地方都能用得到,在这里记录一下。
/// <summary> /// 分页的实现(将DataSet中的数据分页显示) /// </summary> /// <param name="ds"></param> /// <returns></returns> public DataSet SplitDataSet() { DataSet ds = LoadData(); DataSet vds = new DataSet(); if (ds != null && ds.Tables[0].Rows.Count > 0) { vds = ds.Clone(); int pageSize = PageSize;//每页显示的数据个数 int pageIndex = PageIndex;//显示已分页的数据的页面页码 int fromIndex = pageSize * (pageIndex - 1); int toIndex = pageSize * pageIndex - 1; //如果新显示页的数据下标不在查询到的数据范围内就重置页码 if (toIndex > ds.Tables[0].Rows.Count - 1) { if (fromIndex < ds.Tables[0].Rows.Count) { toIndex = ds.Tables[0].Rows.Count; } else { PageIndex = 1; pageSize = PageSize; pageIndex = PageIndex; fromIndex = pageSize * (pageIndex - 1); toIndex = pageSize * pageIndex - 1; } } for (int i = fromIndex; i <= toIndex; i++) { if (i >= ds.Tables[0].Rows.Count) break; vds.Tables[0].ImportRow(ds.Tables[0].Rows[i]); } ds.Dispose(); DisplayCount = vds.Tables[0].Rows.Count; } return vds; }