C#公共帮助类分页逻辑处理类

Posted 張暁磊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#公共帮助类分页逻辑处理类相关的知识,希望对你有一定的参考价值。

分页逻辑处理类 PageCollection.cs
复制代码
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace Common
  7 {
  8     /// <summary>
  9     /// 分页逻辑处理类
 10     /// </summary>
 11     public class PageCollection
 12     {
 13         /// <summary>
 14         /// 总页数
 15         /// </summary>
 16         public int TotalPages { get; set; }
 17         /// <summary>
 18         /// 当前页面
 19         /// </summary>
 20         public int CurrentPage { get; set; }
 21         /// <summary>
 22         /// 每页的记录数
 23         /// </summary>
 24         public int OnePageSize { get; set; }
 25         /// <summary>
 26         /// 总记录数
 27         /// </summary>
 28         public long TotalRows { get; set; }
 29         /// <summary>
 30         /// 排序
 31         /// </summary>
 32         public string OrderBy { get; set; }
 33 
 34         /// <summary>
 35         /// 构造无参默认为最大数
 36         /// </summary>
 37         public PageCollection()
 38         {
 39             this.CurrentPage = 0;
 40             this.OnePageSize = 20;//默认最大行数20条
 41         }
 42     }
 43     /// <summary>
 44     /// 分页逻辑处理类 linq to entites
 45     /// </summary>
 46     public class PageInfo<TEntity> where TEntity : class
 47     {
 48         public PageInfo(int index, int pageSize, int count, List<TEntity> list,string url="")
 49         {
 50             Index = index;
 51             PageSize = pageSize;
 52             Count = count;
 53             List = list;
 54             Url = url;
 55             //计算数据条数从开始到结束的值
 56             if (count == 0)
 57             {
 58                 BeginPage = 0;
 59                 EndPage = 0;
 60             }
 61             else
 62             {
 63                 int maxpage = count / pageSize;
 64 
 65                 if (count % pageSize > 0)
 66                 {
 67                     maxpage++;
 68                 }
 69                 if (index >= maxpage)
 70                 {
 71                     index = maxpage;
 72 
 73                     BeginPage = pageSize * index - pageSize + 1;
 74                     EndPage = count;
 75                 }
 76                 else
 77                 {
 78                     BeginPage = pageSize * index - pageSize + 1;
 79                     EndPage = pageSize * index;
 80                 }
 81             }
 82         }
 83 
 84         public int Index { get; private set; }
 85         public int PageSize { get; private set; }
 86         public int Count { get; private set; }
 87         public List<TEntity> List { get; set; }
 88         public string Url { get; set; }
 89         public int BeginPage { get; private set; }
 90         public int EndPage { get; private set; }
 91     }
 92 
 93     /// <summary>
 94     /// 分页逻辑处理类 dynamic
 95     /// </summary>
 96     public class PageInfo 
 97     {
 98         public PageInfo(int index, int pageSize, int count, dynamic list, string url = "")
 99         {
100             Index = index;
101             PageSize = pageSize;
102             Count = count;
103             List = list;
104             Url = url;
105             //计算数据条数从开始到结束的值
106             if (count == 0)
107             {
108                 BeginPage = 0;
109                 EndPage = 0;
110             }
111             else
112             {
113                 int maxpage = count / pageSize;
114 
115                 if (count % pageSize > 0)
116                 {
117                     maxpage++;
118                 }
119                 if (index >= maxpage)
120                 {
121                     index = maxpage;
122 
123                     BeginPage = pageSize * index - pageSize + 1;
124                     EndPage = count;
125                 }
126                 else
127                 {
128                     BeginPage = pageSize * index - pageSize + 1;
129                     EndPage = pageSize * index;
130                 }
131             }
132         }
133 
134         public int Index { get; private set; }
135         public int PageSize { get; private set; }
136         public int Count { get; private set; }
137         public dynamic List { get; private set; }
138         public string Url { get; set; }
139         public int BeginPage { get; private set; }
140         public int EndPage { get; private set; }
141     }
142 
143     /// <summary>
144     /// Eazyui分页处理逻辑类
145     /// </summary>
146     public class PageEazyUi 
147     {
148         public PageEazyUi(int _page, int _pagesize, int _total, object _rows)
149         {
150             page = _page;
151             pagesize = _pagesize;
152             total = _total;
153             rows = _rows;
154         }
155 
156         public int page { get; private set; }
157         public int pagesize { get; private set; }
158         public int total { get; private set; }
159         public object rows { get; private set; }
160     }
161 }
复制代码

以上是关于C#公共帮助类分页逻辑处理类的主要内容,如果未能解决你的问题,请参考以下文章

C#公共帮助类 Convert帮助类

片段 null 必须是公共静态类才能从实例状态正确重新创建

C#公共帮助类 Image帮助类

C#公共帮助类JsonHelper 操作帮助类

C#实现的Redis缓存公共类库项目

C# 调用API接口处理公共类 自带JSON实体互转类