【WH】MVC数据分页扩展类
public static class QueryableExtensions{#region 内存分页/// <summary>/// 返回对象分页列表/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="dataSource">已排序的数据源</param>/// <param name="pageIndex">页码,1开始</param>/// <param name="pageSize">页条数</param>/// <returns>对象分页列表</returns>public static IPagedList<T> ToPagedList<T>(this IList<T> dataSource, int pageIndex, int pageSize)where T : class{pageIndex = pageIndex <= 0 ? 1 : pageIndex;var pagedList = new PagedList<T>{PageIndex = pageIndex,PageSize = pageSize,TotalCount = dataSource.Count,Entities = dataSource.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList()};return pagedList;}/// <summary>/// 返回对象分页列表/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="dataSource">已排序的数据源</param>/// <param name="pager">分页器对象;当为空时,分页器取默认值</param>/// <returns>对象分页列表</returns>public static IPagedList<T> ToPagedList<T>(this IList<T> dataSource, Pager pager) where T : class{pager = pager ?? new Pager();return dataSource.ToPagedList(pager.PageIndex, pager.PageSize);}#endregion#region IQueryable分页/// <summary>/// 返回对象分页列表/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="dataSource">已排序的数据源</param>/// <param name="pageIndex">页码,1开始</param>/// <param name="pageSize">页条数</param>/// <returns>对象分页列表</returns>public static IPagedList<T> ToPagedList<T>(this IQueryable<T> dataSource, int pageIndex, int pageSize)where T : class{pageIndex = pageIndex <= 0 ? 1 : pageIndex;var pagedList = new PagedList<T>{PageIndex = pageIndex,PageSize = pageSize,TotalCount = dataSource.Count(),Entities = dataSource.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList()};return pagedList;}/// <summary>/// 返回对象分页列表/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="dataSource">已排序的数据源</param>/// <param name="pager">分页器对象;当为空时,分页器取默认值</param>/// <returns>对象分页列表</returns>public static IPagedList<T> ToPagedList<T>(this IQueryable<T> dataSource, Pager pager) where T : class{pager = pager ?? new Pager();return dataSource.ToPagedList(pager.PageIndex, pager.PageSize);}#endregion/// <summary>/// 当满足特定条件时执行查询/// </summary>/// <typeparam name="T">对象类型</typeparam>/// <param name="source">查询对象</param>/// <param name="condition">需要满足的条件</param>/// <param name="predicate">满足条件时执行的查询表达式</param>/// <returns>结果集</returns>public static IQueryable<T> WhereIf<T>(this IQueryable<T> source, bool condition,Expression<Func<T, bool>> predicate){return condition ? source.Where(predicate) : source;}}
/// <summary>/// 分页器/// </summary>public class Pager{/// <summary>/// 分页索引(默认为1)/// </summary>public int PageIndex { get; set; } = 1;/// <summary>/// 分页大小(默认为10)/// </summary>public int PageSize { get; set; } = 10;}
转载于:https://www.cnblogs.com/x-poior/p/8085509.html
【WH】MVC数据分页扩展类相关推荐
- php分页显示类——在线拍卖行(1)
`自己周末做了一个在线拍卖行,虽然没有很好看的界面,但是上架商品,竞价,展示商品,展示热门商品等已经都有了,自己现在把里面用到的东西一点点写出来为以后复习用. 首先就是一个php的分页显示 ...
- 【Flask项目2】python对象分页数据序列化基类(5)
comment-utils-serializer.py文件 class BasePaginateSerializer(object):"""分页数据序列化基类" ...
- php批量新增数据类型,Yii框架批量插入数据扩展类的简单实现方法
本文实例讲述了Yii框架批量插入数据扩展类的简单实现方法.分享给大家供大家参考,具体如下: MySQL INSERT语句允许插入多行数据,如下所示: INSERT INTO tbl_name (a,b ...
- mvc.net分页查询案例——PagedList
在.net中,除了人手动写分页类之外,微软还提供了官方的分页,分页工具类包括PagedList和PagerExtension,先来看看PagedList类里面是怎么写的: PagedList usin ...
- 自定义MVC框架之工具类-图像处理类
截止目前已经改造了4个类: ubuntu:通过封装验证码类库一步步安装php的gd扩展 自定义MVC框架之工具类-分页类的封装 自定义MVC框架之工具类-文件上传类 图像处理类: 1,图片加水印处理( ...
- drf之day05: 2个视图基类,GenericAPIView的属性和方法,基于APIView写5个接口,基于GenericAPIView写5个接口,5个视图扩展类,9个视图子类,视图集
目录标题 一:2个视图基类 1.GenericAPIView的属性和方法 二:基于APIView写5个接口 三:基于GenericAPIView写5个接口 四:五个视图扩展类 1..基于Generic ...
- SQL Server下7种“数据分页”方案,全网最全,快收藏
数据分页往往有三种常用方案. 第一种,把数据库中存放的相关数据,全部读入PHP/Java/C#代码/内存,再由代码对其进行分页操作(速度慢,简易性高). 第二种,直接在数据库中对相关数据进行分页操作, ...
- jango-简单的mixin扩展类
介绍 关于mixin,mix in是一种提供基础口味的冰淇淋(如香草,巧克力),可以往上添加坚果,饼干等.mixin作为扩展类通常用于多继承问题.多继承是Python语言的特色.一般通过继承或重写来使 ...
- 扩展方法必须在非泛型静态类中定义_第11篇:Cython面向对象编程--扩展类的实例化...
我们前篇谈到了Cython的访问控制,并且谈论了cdef class关键字的底层操作,顺带也谈论了Python类为什么会比Cython类慢的原因.本篇我们将介绍Cython扩展类的初始化 Cython ...
- 数据分页 THINKPHP3.2 分页 三种分页方法
数据分页复制本页链接opensns 通常在数据查询后都会对数据集进行分页操作,ThinkPHP也提供了分页类来对数据分页提供支持. 下面是数据分页的两种示例.第一种:利用Page类和limit方法$U ...
最新文章
- 如何获取Vim中所有已安装颜色方案的列表?
- python的填充色怎么弄_python中如何给图形填充颜色
- 长微博android,Android 上最强大的长微博工具:BlackLight 长微博
- Android 开发之 bindService() 通信
- leetcode 117. 填充每个节点的下一个右侧节点指针 II(Populating Next Right Pointers in Each Node II)...
- 数据库设计-电话号码长度
- 比较全面的OA系统需求分析
- 远程RPC调用用于js逆向
- matlab 正20面体,如何画正二十面体
- java 句柄无效_c# – 通过java运行.net控制台时“句柄无效”
- 这篇文章终于把中美德三国的工业互联网讲清楚了
- supervisor 提示:xxx: ERROR (no such process)
- UUID的含义及实现原理
- java 做日历_java编程实现日历
- 什么是元组以及元组的作用
- SQL sever 数据库数据类型
- [Spring实战系列](11)SpEL使用表达式装配
- 破解这「七宗罪」,你才能晋升高级运营
- 计算机开启后显示器黑屏,开机后显示器黑屏无信号输入但电脑主机一直在运行的解决方法...
- 上市公司高新技术资质认定匹配数据(2000-2021年)
热门文章
- 关注VS.Net 2005
- 实现链表的增删改查java代码_用Java语言实现链表的增删改查
- android对象识别实验报告,20162302 实验四《Android程序设计》实验报告
- Spring在Web中的应用
- tp5 保存图片背景黑色_将照片背景换成黑色或白色,用snapseed手机修图软件,怎么操作?...
- 关于计算机的幻想作文600字,科学幻想作文600字
- 基于矩阵分解的隐因子模型
- Java 多线程执行
- form表单的get和post传值问题
- bzoj 1072: [SCOI2007]排列perm