1 public class MyPager 2 { 3 /// <summary> 4 /// 每一页数据的条数 5 /// </summary> 6 public int PageSize { get; set; } 7 8 /// <summary> 9 /// 总数据条数 10 /// </summary> 11 public int TotalCount { get; set; } 12 13 /// <summary> 14 /// 显示出来的页码的最多个数 15 /// </summary> 16 public int MaxPagerCount { get; set; } 17 18 /// <summary> 19 /// 当前页的页码(从1开始算起始页) 20 /// </summary> 21 public int PageIndex { get; set; } 22 23 /// <summary> 24 /// 链接的格式,约定其中页码用{pn}占位符 25 /// </summary> 26 public string UrlPattern { get; set; } 27 28 /// <summary> 29 /// 当前页的页码的样式名字 30 /// </summary> 31 public string CurrentPageClassName { get; set; } 32 33 public string GetPagerHtml() 34 { 35 StringBuilder html = new StringBuilder(); 36 html.Append("<ul>"); 37 38 //ToDO:加上上一页、下一页、首页、末页、页面跳转等。 39 40 //总页数 41 int pageCount = (int)Math.Ceiling(TotalCount*1.0/PageSize); 42 //显示出来的页码的起始页码 43 int startPageIndex = Math.Max(1, PageIndex - MaxPagerCount / 2); 44 //显示出来的页码的结束页码 45 int endPageIndex = Math.Min(pageCount, startPageIndex + MaxPagerCount); 46 for(int i=startPageIndex;i<= endPageIndex;i++) 47 { 48 //是当前页 49 if (i == PageIndex) 50 { 51 html.Append("<li class='").Append(CurrentPageClassName).Append("'>") 52 .Append(i).Append("</li>"); 53 } 54 else 55 { 56 string href = UrlPattern.Replace("{pn}", i.ToString()); 57 html.Append("<li><a href='").Append(href).Append("'>") 58 .Append(i).Append("</a></li>"); 59 } 60 } 61 62 html.Append("</ul>"); 63 return html.ToString(); 64 } 65 }