代码:
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 小弟没有太多测试。