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

来源:互联网 发布:java时间戳精确到秒 编辑:程序博客网 时间:2024/06/01 17:25

  protected List ListPager(List DataSource, int CurrentPageIndex, int PageSize, string FilterExpression, ref int 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(DataSource);

  DataView dv = dt.DefaultView;

  dv.RowFilter = FilterExpression;

  List NewDataSource = KingLib.DataHelper.DataTableToList(dv.ToTable());

  count = NewDataSource.Count;

  int startIndex = CurrentPageIndex * PageSize;

  if (startIndex + PageSize > NewDataSource.Count)

  {

  PageSize = NewDataSource.Count - startIndex;

  }

  return NewDataSource.GetRange(startIndex, PageSize);

  }

  }

  

0 0