zoukankan      html  css  js  c++  java
  • 分享一个C#的分页类

    废话不说只有代码:

     1 using System.Linq;
     2 using System.Collections.Generic;
     3 
     4 namespace CommonLibrary
     5 {
     6     public class PagedList<T> : List<T>
     7     {
     8         #region Properties
     9 
    10         public int PageIndex { get; private set; }
    11 
    12         public int PageSize { get; private set; }
    13 
    14         public int TotalCount { get; private set; }
    15 
    16         public int TotalPages { get; private set; }
    17 
    18         public bool HasPreviousPage
    19         {
    20             get { return (PageIndex > 0); }
    21         }
    22         public bool HasNextPage
    23         {
    24             get { return (PageIndex + 1 < TotalPages); }
    25         }
    26 
    27         #endregion
    28        //http://www.cnblogs.com/roucheng/
    29         #region Constructors
    30 
    31         public PagedList(IQueryable<T> source, int pageIndex, int pageSize)
    32         {
    33             if (source == null || source.Count() < 1)
    34                 throw new System.ArgumentNullException("source");
    35 
    36             int total = source.Count();
    37             this.TotalCount = total;
    38             this.TotalPages = total / pageSize;
    39 
    40             if (total % pageSize > 0)
    41                 TotalPages++;
    42 
    43             this.PageSize = pageSize;
    44             this.PageIndex = pageIndex;
    45             this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
    46         }
    47 
    48         public PagedList(IList<T> source, int pageIndex, int pageSize)
    49         {
    50             if (source == null || source.Count() < 1)
    51                 throw new System.ArgumentNullException("source");
    52 
    53             TotalCount = source.Count();
    54             TotalPages = TotalCount / pageSize;
    55 
    56             if (TotalCount % pageSize > 0)
    57                 TotalPages++;
    58 
    59             this.PageSize = pageSize;
    60             this.PageIndex = pageIndex;
    61             this.AddRange(source.Skip(pageIndex * pageSize).Take(pageSize).ToList());
    62         }
    63 
    64         public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount)
    65         {
    66             if (source == null || source.Count() < 1)
    67                 throw new System.ArgumentNullException("source");
    68 
    69             TotalCount = totalCount;
    70             TotalPages = TotalCount / pageSize;
    71 
    72             if (TotalCount % pageSize > 0)
    73                 TotalPages++;
    74 
    75             this.PageSize = pageSize;
    76             this.PageIndex = pageIndex;
    77             this.AddRange(source);
    78         }
    79 
    80         #endregion
    81     }
    82 }
  • 相关阅读:
    眼睛的颜色 博弈
    codevs1281 矩阵乘法 快速幂 !!!手写乘法取模!!! 练习struct的构造函数和成员函数
    10 25日考试 数学题目练习 斐波拉契 打表
    线段树 模板
    榨取kkksc03 luogu1855 dp 裸二维费用背包
    低价购买 洛谷1108 codevs4748 dp
    [转] 经典排序算法
    [USACO08DEC] Trick or Treat on the Farm
    [NOIP2009] 靶形数独(搜索+剪枝)
    各种蒟蒻模板【如此简单】
  • 原文地址:https://www.cnblogs.com/roucheng/p/3468498.html
Copyright © 2011-2022 走看看