分页类

王朝学院·作者佚名  2016-05-17
窄屏简体版  字體: 小  |  中  |  大  |  超大  

分页类

/// <summary> /// 分页 /// </summary> /// <typeparam name="T">类型</typeparam> public class PagedList<T> : List<T> { /// <summary> /// 缓存分页构造函数 /// </summary> /// <param name="source">数据源</param> /// <param name="pageIndex">当前页页码</param> /// <param name="pageSize">每页显示记录数</param> public PagedList(IQueryable<T> source, int pageIndex, int pageSize) { if (source == null || !source.Any()) throw new ArgumentNullException("source"); int total = source.Count(); TotalCount = total; TotalPages = total/pageSize; if (total%pageSize > 0) TotalPages++; PageSize = pageSize; PageIndex = pageIndex; AddRange(source.Skip(pageIndex*pageSize).Take(pageSize).ToList()); } /// <summary> /// 缓存分页构造函数 /// </summary> /// <param name="source">数据源</param> /// <param name="pageIndex">当前页页码</param> /// <param name="pageSize">每页显示记录数</param> public PagedList(IList<T> source, int pageIndex, int pageSize) { if (source == null || !source.Any()) throw new ArgumentNullException("source"); TotalCount = source.Count(); TotalPages = TotalCount/pageSize; if (TotalCount%pageSize > 0) TotalPages++; PageSize = pageSize; PageIndex = pageIndex; AddRange(source.Skip(pageIndex*pageSize).Take(pageSize).ToList()); } /// <summary> /// 非缓存分页构造函数 /// </summary> /// <param name="source">数据源</param> /// <param name="pageIndex">当前页页码</param> /// <param name="pageSize">每页显示记录数</param> /// <param name="totalCount">总记录数</param> public PagedList(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount) { if (source == null || !source.Any()) throw new ArgumentNullException("source"); TotalCount = totalCount; TotalPages = TotalCount/pageSize; if (TotalCount%pageSize > 0) TotalPages++; PageSize = pageSize; PageIndex = pageIndex; AddRange(source); } /// <summary> /// 当前页页码 /// </summary> public int PageIndex { get; PRivate set; } /// <summary> /// 每页显示记录数 /// </summary> public int PageSize { get; private set; } /// <summary> /// 总记录数 /// </summary> public int TotalCount { get; private set; } /// <summary> /// 总页数 /// </summary> public int TotalPages { get; private set; } /// <summary> /// 有上一页 /// </summary> public bool HaspreviousPage { get { return (PageIndex > 0); } } /// <summary> /// 有下一页 /// </summary> public bool HasNextPage { get { return (PageIndex + 1 < TotalPages); } } }

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航