Net 分页功能的实现
首先写一个接口
1
2
3
4
5
6
|
public interface IPagedList
{
int CurrentPageIndex { get; set; }
int PageSize { get; set; }
int TotalItemCount { get; set; }
}
|
然后一个类去实现这个类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public class PagedList<T> : List<T>,IPagedList
{
public PagedList(IList<T> items, int pageIndex, int pageSize)
{
PageSize = pageSize;
TotalItemCount = items.Count;
CurrentPageIndex = pageIndex;
for (int i = StartRecordIndex - 1; i < EndRecordIndex; i++)
{
Add(items[i]);
}
}
public PagedList(IEnumerable<T> items, int pageIndex, int pageSize, int totalItemCount)
{
AddRange(items);
TotalItemCount = totalItemCount;
CurrentPageIndex = pageIndex;
PageSize = pageSize;
}
public int ExtraCount { get; set; }
public int CurrentPageIndex { get; set; }
public int PageSize { get; set; }
public int TotalItemCount { get; set; }
public int TotalPageCount { get { return (int)Math.Ceiling(TotalItemCount / (double)PageSize); } }
public int StartRecordIndex { get { return (CurrentPageIndex - 1) * PageSize + 1; } }
public int EndRecordIndex { get { return TotalItemCount > CurrentPageIndex * PageSize ? CurrentPageIndex * PageSize : TotalItemCount; } }
}
|
那么最后,我们应该如何去调用这个 PagedList的呢?我们先写一个拓展方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public static class PageLinqExtensions
{
public static PagedList<T> ToPagedList<T>
(
this IQueryable<T> allItems,
int pageIndex,
int pageSize
)
{
if (pageIndex < 1)
pageIndex = 1;
var itemIndex = (pageIndex - 1) * pageSize;
var pageOfItems = allItems.Skip(itemIndex).Take(pageSize).ToList();
var totalItemCount = allItems.Count();
return new PagedList<T>(pageOfItems, pageIndex, pageSize, totalItemCount);
}
}
|
然后调用的时候就可以这样使用了
1
2
|
IQueryable<User> users ;
users.OrderByDescending(u => u.ID).ToPagedList(request.PageIndex, request.PageSize);
|
来自 Net 分页功能的实现
转载于:https://www.cnblogs.com/qiao-xi/p/5594661.html
Net 分页功能的实现相关推荐
- django自带的分页功能
django自带的分页功能 django中自带的分页功能有缺陷,但是也是一种思路,所以在下做一个整理,方便以后使用,还有服务各位小伙伴. django视图部分的代码.(注释才是重点) from dja ...
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
关键字:DataGrid.存储过程.分页 出自: http://blog.csdn.net/yzx110/archive/2004/08/18/78525.aspx 摘要:在最进的一个项目中因为一个管 ...
- hibernate和struts2实现分页功能
1.DAO层接口的设计,定义一个PersonDAO接口,里面声明了两个方法: public interface PersonDAO {public List<Person> queryBy ...
- 分页技巧_实现第一个分页功能(回复列表中的分页)
分页技巧_实现第一个分页功能(回复列表中的分页) ======================================== 假设共25条数据,每页显示10条,则共3页 first max - ...
- jsp自定义图文新闻列表标签结合ssh2,带分页功能
jsp自定义图文新闻列表标签结合ssh2,带分页功能(欢迎大家讨论指点,共同进步) 1.service层 (模拟返回数据) package com.mingda.service.impl;import ...
- oracle接收输入参数,Oracle带输入输出参数存储过程(包括sql分页功能)
记录一下,免得以后忘记了又要到处去找. begin /*这里不能直接执行select语句但可以直接执行update.delete.insert语句*/ end里面不能接执行select语句,声明会话级 ...
- 【SSH项目实战】国税协同平台-26.分页功能编写
可以看到,我们之前的用户管理.角色管理和信息发布管理的列表下均有这些东西: 总共1条记录,当前第 1 页,共 1 页 上一页 下一页 到 这个就是美工留给我们做分页的,我们接下来就以信息发布管 ...
- [置顶] 分步实现具有分页功能的自定义DataList控件【附源代码】
一.控件也是类 [效果] [操作步骤] 1. 新建网站Web 2. 添加类CustomDataList.cs(系统会提示你把类建在App_Code文件夹中),代码如下: using System; ...
- 使用hibernate和struts2实现分页功能
想着每天能学个新东西,今天准备了这个hibernate+struts2实现页面的分页功能,在这里,首先要感谢 http://www.blogjava.net/rongxh7/archive/2008/ ...
- think php ajax分页,thinkPHP5框架实现基于ajax的分页功能示例
本文实例讲述了thinkPHP5框架实现基于ajax的分页功能.分享给大家供大家参考,具体如下: 最近一个页面的选项卡又牵扯到ajax分页,所以研究了一下tp5的ajax分页使用方法 首先看一下tp5 ...
最新文章
- ACM入门之【快速幂】
- linux more 下一页_Linux学习笔记
- jdbc获取mysql表数据类型_jdbc操作数据库并自动获取字段类型
- java识别系统_[Java教程]Java识别操作系统
- 精品美剧小屏精致灰色风格苹果CMSv10主题
- JavaScript 通过字符串获取function
- 内外网映射 html缓存问题_浅谈内存映射
- 天正多条线段长度lisp下载_四年级数学上册基础题过关检测+12套思维题,下载给孩子测试!【有电子版】...
- linux下GPIO的用户层操作(sysfs)
- Java机器学习软件介绍
- 启动docker时映射到宿主机时出现 usrbindocker-current Error response from daemon driver failed
- IDEA中Python使用url时报错:Traceback (most recent call last)
- 三自由度机器人轨迹规划(两旋转+移动)
- zabbix_proxy代理服务器搭建教程
- 腾讯秀丽江山之长歌行服务器维护,37长歌行5月15日合服维护公告
- 从消息推送来看,华为、小米做得最好
- 佳能打印机手机显示未连接服务器失败,佳能打印机连不上手机
- system mysql服务
- 中国工程院院士高文ICTC演讲《国家新一代人工智能发展规划》
- 《Universal Language Model Fine-tuning for Text Classification》翻译