List<T> 分页方式,泛型分页方式

List
protected List<T> ListPager<T>(List<T> DataSource, int CurrentPageIndex, int PageSize, string FilterExpression, refint count)
{
count
=0;
if (DataSource ==null|| DataSource.Count ==0)
return DataSource;
count
= DataSource.Count;
if (string.IsNullOrEmpty(FilterExpression))
{
int startIndex = CurrentPageIndex * PageSize;
if (startIndex + PageSize > DataSource.Count)
{
PageSize
= DataSource.Count - startIndex;
}
return DataSource.GetRange(startIndex, PageSize);
}
else
{
DataTable dt
= KingLib.DataHelper.ListToDataTable<T>(DataSource);
DataView dv
= dt.DefaultView;
dv.RowFilter
= FilterExpression;
List
<T> NewDataSource = KingLib.DataHelper.DataTableToList<T>(dv.ToTable());
count
= NewDataSource.Count;
int startIndex = CurrentPageIndex * PageSize;
if (startIndex + PageSize > NewDataSource.Count)
{
PageSize
= NewDataSource.Count - startIndex;
}
return NewDataSource.GetRange(startIndex, PageSize);
}
}

 

posted @ 2011-07-26 10:51  kingkoo  阅读(5292)  评论(0编辑  收藏  举报