【C#公共帮助类】分页逻辑处理类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Common
{
/// <summary>
/// 分页逻辑处理类
/// </summary>
public class PageCollection
{
/// <summary>
/// 总页数
/// </summary>
public int TotalPages { get; set; }
/// <summary>
/// 当前页面
/// </summary>
public int CurrentPage { get; set; }
/// <summary>
/// 每页的记录数
/// </summary>
public int OnePageSize { get; set; }
/// <summary>
/// 总记录数
/// </summary>
public long TotalRows { get; set; }
/// <summary>
/// 排序
/// </summary>
public string OrderBy { get; set; } /// <summary>
/// 构造无参默认为最大数
/// </summary>
public PageCollection()
{
this.CurrentPage = ;
this.OnePageSize = ;//默认最大行数20条
}
}
/// <summary>
/// 分页逻辑处理类 linq to entites
/// </summary>
public class PageInfo<TEntity> where TEntity : class
{
public PageInfo(int index, int pageSize, int count, List<TEntity> list,string url="")
{
Index = index;
PageSize = pageSize;
Count = count;
List = list;
Url = url;
//计算数据条数从开始到结束的值
if (count == )
{
BeginPage = ;
EndPage = ;
}
else
{
int maxpage = count / pageSize; if (count % pageSize > )
{
maxpage++;
}
if (index >= maxpage)
{
index = maxpage; BeginPage = pageSize * index - pageSize + ;
EndPage = count;
}
else
{
BeginPage = pageSize * index - pageSize + ;
EndPage = pageSize * index;
}
}
} public int Index { get; private set; }
public int PageSize { get; private set; }
public int Count { get; private set; }
public List<TEntity> List { get; set; }
public string Url { get; set; }
public int BeginPage { get; private set; }
public int EndPage { get; private set; }
} /// <summary>
/// 分页逻辑处理类 dynamic
/// </summary>
public class PageInfo
{
public PageInfo(int index, int pageSize, int count, dynamic list, string url = "")
{
Index = index;
PageSize = pageSize;
Count = count;
List = list;
Url = url;
//计算数据条数从开始到结束的值
if (count == )
{
BeginPage = ;
EndPage = ;
}
else
{
int maxpage = count / pageSize; if (count % pageSize > )
{
maxpage++;
}
if (index >= maxpage)
{
index = maxpage; BeginPage = pageSize * index - pageSize + ;
EndPage = count;
}
else
{
BeginPage = pageSize * index - pageSize + ;
EndPage = pageSize * index;
}
}
} public int Index { get; private set; }
public int PageSize { get; private set; }
public int Count { get; private set; }
public dynamic List { get; private set; }
public string Url { get; set; }
public int BeginPage { get; private set; }
public int EndPage { get; private set; }
} /// <summary>
/// Eazyui分页处理逻辑类
/// </summary>
public class PageEazyUi
{
public PageEazyUi(int _page, int _pagesize, int _total, object _rows)
{
page = _page;
pagesize = _pagesize;
total = _total;
rows = _rows;
} public int page { get; private set; }
public int pagesize { get; private set; }
public int total { get; private set; }
public object rows { get; private set; }
}
}
【C#公共帮助类】分页逻辑处理类的更多相关文章
- C【C#公共帮助类】分页逻辑处理类
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Comm ...
- java面向对象类的继承~ 匿名类 ;多态特性;强制类型转换
类的继承 创建子类语法: 修饰符 class 子类名 extends 父类名{ } 匿名子类语法: 直接实例化,过程中通过匿名类 继承父类,在实例化过程中将子类匿名 <父类 ...
- 分享自研实现的多数据源(支持同DB不同表、跨DB表、内存数据、外部系统数据等)分页查询工具类实现原理及使用
思考: 提起分页查询,想必任何一个开发人员(不论是新手还是老手)都能快速编码实现,实现原理再简单不过,无非就是写一条SELECT查询的SQL语句,ORDER BY分页排序的字段, 再结合limit ( ...
- 分享非常好用的前端分页js工具类 灵活 简单易懂
分享自己封装的前端分页js工具类 下面是默认样式效果截图 可以随意更改js及css 很灵活 /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总 ...
- Java编程的逻辑 (13) - 类
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...
- Java编程的逻辑 (14) - 类的组合
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- QCache 缓存(类似于map的模板类,逻辑意义上的缓存Cache,方便管理,默认类似于LRU的淘汰算法)
最近在学习缓存方面的知识,了解了缓存(Cache)的基本概念,为什么要使用缓存,以及一些缓存算法(缓存替换),如LRU.LFU.ARC等等. 这些缓存算法的实现过程会使用一些基本的数据结构,如list ...
- j2ee model1模型完成分页逻辑的实现 详解!
在显示用户全部信息的页面,在显示全部数据的时候,长长的滚动条,像是没有边界的天空一样, 让用户查看数据很不方便. 于是, 我们要把这些数据分页显示, 就像office的word一样,每页显示一定数量的 ...
- SSM框架手动实现分页逻辑(非PageHelper)
第一种方法:查询出所有数据再分页 分析: 分页时,需要获得前台传来的两个参数,分别为pageNo(第几页数据),pageSize(每页的条数); 根据这两个参数来计算出前端需要的数据是查出数据list ...
随机推荐
- HTML5- Canvas入门(三)
前两章我们掌握了线段.矩形和多边形的绘制方法,今天我们主要是学习如何绘制圆弧和贝塞尔曲线. 圆弧的绘制 圆弧可以理解为一个圆上的某部分线段,在canvas中,绘制一条圆弧的语法如下: ctx.arc( ...
- Mina入门教程(二)----Spring4 集成Mina
在spring和mina集成的时候,要十分注意一个问题:版本. 这是一个非常严重的问题,mina官网的demo没错,网上很多网友总结的代码也是对的,但是很多人将mina集成到spring中的时候,总是 ...
- ASP.Net WebForm温故知新学习笔记:一、aspx与服务器控件探秘
开篇:毫无疑问,ASP.Net WebForm是微软推出的一个跨时代的Web开发模式,它将WinForm开发模式的快捷便利的优点移植到了Web开发上,我们只要学会三步:拖控件→设属性→绑事件,便可以行 ...
- 谈谈D2
很多参与了 D2 的人还不知道 D2 是个什么东西,印象中就是很多很多前端工程师汇聚在一起,交流技术.D2 是 D2前端技术论坛的简称,英文名 Designer & Developer Fro ...
- SQL Server 备份迁移策略
标签:SQL SERVER/MSSQL SERVER/数据库/DBA/xp_cmdshell/备份压缩 概述 当备份空间不是很充裕的情况下需要找方法将备份文件拷贝到专用的备份机器上去,特别是存储空间不 ...
- MySQL外键之级联
简介 MySQL外键起到约束作用,在数据库层面保证数据的完整性.例如使用外键的CASCADE类型,当子表(例如user_info)关联父表(例如user)时,父表更新或删除时,子表会更新或删除记录,这 ...
- 学习nodejs有感
接触nodejs一段时间了,不断的去接触接触,nodejs是一个能让前端程序员做后台开发的一项技术. 随着学习,让我更好的理解了前后端,以及浏览器是如何运作的
- WPF 弹出UserControl
UserControl正常情况下是不能被弹出的,而编写好的UserControl页面,为了查看效果,又需要弹出. 为了解决这个问题,UserControl需要一个Windows来接收. var win ...
- 《JS设计模式笔记》 1,单例模式
<script type="text/javascript"> //单例模式 //1,每次点击都会生成一个新的div var createMask=function ( ...
- Unity事件
unity3d事件函数整理,事件,回调函数,消息处理 Unity3D中所有控制脚本的基类MonoBehaviour有一些虚函数用于绘制中事件的回调,也可以直接理解为事件函数,例如大家都很清楚的Star ...