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#公共帮助类】分页逻辑处理类的更多相关文章

  1. 【C#公共帮助类】分页逻辑处理类

    分页逻辑处理类 PageCollection.cs using System; using System.Collections.Generic; using System.Linq; using S ...

  2. java面向对象类的继承~ 匿名类 ;多态特性;强制类型转换

    类的继承 创建子类语法:     修饰符 class 子类名 extends 父类名{        } 匿名子类语法: 直接实例化,过程中通过匿名类 继承父类,在实例化过程中将子类匿名 <父类 ...

  3. j2ee model1模型完成分页逻辑的实现 详解!

    在显示用户全部信息的页面,在显示全部数据的时候,长长的滚动条,像是没有边界的天空一样, 让用户查看数据很不方便. 于是, 我们要把这些数据分页显示, 就像office的word一样,每页显示一定数量的 ...

  4. SSM框架手动实现分页逻辑(非PageHelper)

    第一种方法:查询出所有数据再分页 分析: 分页时,需要获得前台传来的两个参数,分别为pageNo(第几页数据),pageSize(每页的条数); 根据这两个参数来计算出前端需要的数据是查出数据list ...

  5. SSM手动实现分页逻辑---非PageHelper方式

    第一种方法:查询出所有数据再分页 分析: 分页时,需要获得前台传来的两个参数,分别为pageNo(第几页数据),pageSize(每页的条数); 根据这两个参数来计算出前端需要的数据是查出数据list ...

  6. 分享自研实现的多数据源(支持同DB不同表、跨DB表、内存数据、外部系统数据等)分页查询工具类实现原理及使用

    思考: 提起分页查询,想必任何一个开发人员(不论是新手还是老手)都能快速编码实现,实现原理再简单不过,无非就是写一条SELECT查询的SQL语句,ORDER BY分页排序的字段, 再结合limit ( ...

  7. 分享非常好用的前端分页js工具类 灵活 简单易懂

    分享自己封装的前端分页js工具类  下面是默认样式效果截图 可以随意更改js及css 很灵活 /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总 ...

  8. Java编程的逻辑 (13) - 类

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  9. Java编程的逻辑 (14) - 类的组合

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

随机推荐

  1. swift-ios开发pod的使用(1)

    MAC安裝CocoaPods   http://www.cnblogs.com/surge/p/4436360.html 请注意我的环境,这个很重要 xcode版本7.3.2   mac 版本OS X ...

  2. javascript面向对象技术基础总结

    javascript面向对象和php不太一样,语法不太相同,总结如下 //cat 对象 function Cat(name,color){ this.name = name;//不确定的成员属性 th ...

  3. Rime输入工具的修改与编译安装

    作为一个比较“事儿多”的五笔用户,在使用过几乎所有的主流输入工具后,我最终选择了定制性非常高(同时也比较难以上手)的Rime.刚开始是在Windows下使用小狼毫0.9.30版,这个工具在上屏速度.热 ...

  4. HDU3605 Escape —— 二分图多重匹配

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3605 Escape Time Limit: 4000/2000 MS (Java/Others)    ...

  5. Linux 查看服务状态(服务与进程)

    原文地址:http://blog.csdn.net/weixin_37979944/article/details/79029188 指令(instruction): 计算机实际上可以做的事情实质上非 ...

  6. day2-python数据类型及关系

  7. 编程模式(schema) —— 表驱动法(table-driven)

    使用表驱动法,而非繁琐冗长的 if/else, switch case(本身也代表一种代码坏味道),也是替身编程质量的重要手段, 表驱动法是一种编程模式(schema)-- 从表里面查找信息而不使用逻 ...

  8. python optparse模块的简单用法

    # coding = utf-8 from optparse import OptionParser from optparse import OptionGroup usage = 'Usage: ...

  9. 错误 128 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColumn”

    原因是DataGridView中列的Name属性值和DataPropertyName属性值一样,比如Name="CardID",DataPropertyName="Car ...

  10. NodeJS REST API with MySQL and Express

    http://www.nodewiz.biz/nodejs-rest-api-with-mysql-and-express/ NPM Modules Express felixge/node-mysq ...