一个自用的泛型分页类
代码:
using System; using System.Collections.Generic; using System.Text; namespace Tandy { /// <summary> /// /// 分页类 /// /// 作者:汤晓华 2009年6月27日 /// /// copyright 2009 /// /// </summary> public class DataPage<T> { #region 字段 //索引位置 private int pageIndex; //页面承载的数据条数 private int pageSize; //总数据量 private int dateCount; //结果集 private IList<T> result; //当前结果集中的第一条数在符合条件的数据集中的位置 #endregion #region 属性访问器 //当前页的索引位置 public int PageIndex { get { if (pageIndex == 0) { pageIndex = 1; } return pageIndex; } set { pageIndex = value; } } //页面承载的数据条数 public int PageSize { get { if (pageSize == 0) { pageSize = 20; } return pageSize; } set { pageSize = value; } } //总页数 public int PageCount { get { return (dateCount % pageSize) > 0 ? (dateCount / pageSize) + 1 : (dateCount / pageSize); } } /// <summary> /// 数据量 /// </summary> public int DateCount { get { return dateCount; } set { dateCount = value; } } //结果集 public IList<T> Result { get { return result; } set { result = value; } } //是否有下一页 public bool HasPrev { get { return pageIndex < PageCount; } } //是否有上一页 public bool HasNext { get { return pageIndex > 1; } } //是否是第一页 public bool IsFirst { get { return pageIndex == 1; } } //是否是最后一页 public bool IsLast { get { return pageIndex == PageCount; } } public int NextPage { get { return pageIndex < PageCount ? pageIndex + 1 : pageIndex; } } public int PrevPage { get { return pageIndex > 1 ? pageIndex - 1 : pageIndex; } } //当前结果集中的第一条数在符合条件的数据集中的位置 public int FirstIndex { get { return null != result ? (pageIndex - 1) * pageSize + 1 : 0; } } //当前结果集中的最后一条数在符合条件的数据集中的位置 public int LastIndex { get { return null != result ? FirstIndex + result.Count - 1 : 0; } } #endregion #region 构造 public DataPage(int pageIndex, int pageSize) { this.pageIndex = pageIndex; this.pageSize = pageSize; } public DataPage() { } #endregion } }
用法:
DataPage<T> page = new DataPage<T>(pageindex,pageSize);
page.DataCount = 数据条数;
page.Result = IList<T>;
DataPage<T> 该类包含了常用的属性。大家有兴趣的可以详细的看一下。可能有bug 小弟没有太多测试。