标签:
做项目的过程中用到了分页的功能,其中初次使用的时候使用的是网上的一个方法,虽然使用起来挺方便,但是不清楚其中的逻辑实现,于是就自己写了一个,其中可以在返回结果集中获得 分页结果中的 当前页,下一页,上一页,总共多少页,数据总数,每页多少行, 代码如下:
1 public class PageHelp 2 { 3 public static PageList<T> ToPageList<T>(int PageRow, int Cpage, IQueryable<T> sql) 4 { 5 var page = new PageList<T>(); 6 page.Cpage = Cpage; 7 page.PageRow = PageRow; 8 page.TotalCount = sql.ToList().Count(); 9 page.TotalPage = (int)Math.Ceiling(sql.ToList().Count() / (double)PageRow); 10 page.data = sql.Skip(Cpage * PageRow).Take(PageRow).ToList(); 11 if (Cpage < page.TotalPage) 12 { 13 page.NextPage = Cpage + 1; 14 } 15 if (Cpage > 1) 16 { 17 page.Fpage = Cpage - 1; 18 } 19 var result = page; 20 return result; 21 } 22 } 23 24 public class PageList<T>:Page 25 { 26 public List<T> data { get; set; } 27 } 28 public class Page 29 { 30 //当前页 31 public int Cpage { get; set; } 32 //数据总数 33 public int TotalCount { get; set; } 34 //总共多少页 35 public int TotalPage { get; set; } 36 //前一页 37 public int Fpage { get; set; } 38 //后一页 39 public int NextPage { get; set; } 40 //每页多少行 41 public int PageRow { get; set; } 42 }
标签:
原文地址:http://www.cnblogs.com/fuhuayishiyanyun/p/5814790.html