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 }