IQueryable定义一个扩展方法。分页
2012-05-16 21:26
369 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace page { public class PagedList<T> : List<T> { public PagedList(IEnumerable<T> content, int currentPage, int pageSize, int totalCount) : this(totalCount, currentPage, pageSize) { AddRange(content); } public PagedList(IQueryable<T> source, int currentPage, int pageSize) : this(source.Count(), currentPage, pageSize) { AddRange(source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList()); } public PagedList(IEnumerable<T> source, int currentPage, int pageSize) : this(source.Count(), currentPage, pageSize) { AddRange(source.Skip((CurrentPage - 1) * PageSize).Take(PageSize).ToList()); } protected PagedList(int count, int currentPage, int pageSize) { TotalCount = count; PageSize = Math.Max(pageSize, 1); CurrentPage = Math.Min(Math.Max(currentPage, 1), TotalPages); } public int CurrentPage { get; set; } public bool HasPreviousPage { get { return CurrentPage > 1; } } public bool HasNextPage { get { return CurrentPage < TotalPages; } } public int PageSize { get; set; } public int TotalCount { get; set; } public int TotalPages { get { return Math.Max((TotalCount + PageSize - 1) / PageSize, 1); } } } }
相关文章推荐
- MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集
- MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集(转)
- 【转载】MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集
- 写一个针对IQueryable<T>的扩展方法支持动态排序
- EF架构~扩展一个分页处理大数据的方法
- Entity Framework DbSet<T>之Include方法与IQueryable<T>扩展方法Include的使用
- IEnumerable<T>与IQueryable<T>以及.net的扩展方法
- Entity Framework DbSet<T>之Include方法与IQueryable<T>扩展方法Include的使用
- C# 001 --- 正确的删除一个控件的事件函数 --- 解决错误: “A”不包含“B”的定义,并且找不到可接受类型为“A”的第一个参数的扩展方法“B”(是否缺少 using 指令或程序集引用?)
- 一个自己写的真正判断文件格式,文件大小,而并不仅仅从扩展名来进行判断的上传方法,进一步加强防止软件或恶意的木马图片上传
- Template Method 在一个方法中实现一个算法,但是推迟定义算法中的某些步骤,从而使其他的类可以重新定义这些步骤
- 为何在一个类中定义了带参数的构造方法的时候,需要把无参构造方法定义一下
- 一个用JSP实现的分页的类及调用方法
- 扩展一个jquery mappingJSON 映射方法
- c# linq的高级用法:分页查询和导出Excel共用一个方法
- 一个读取扩展名为xml的资源文件的方法
- “error LNK1169: 找到一个或多个多重定义的符号”的解决方法(转载)
- 定义一个泛型静态方法,用于输出两个指定集合Collection集合的并、交和差集并验证
- 常用的几个ForEach扩展,外送一个First方法
- 常用的几个ForEach扩展,外送一个First方法