SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:进入论坛最新公告最新公告
搜索: 您的位置主页>SVN资讯>精简版asp.net分页控件

精简版asp.net分页控件

2008-07-22 21:40:04   来源:   作者:   【 评论:0 点击:

建立一个用户控件:Pager.ascx,然后后台代码修改为:

1public partial class Pager : System.Web.UI.UserControl
2 {
3 private string _UrlFormat;
4 private int _PageSize = 10;
5 private int _RecordCount;
6 private int _PageCount = 5;
7
8 /// <summary>
9 /// 连接格式
10 /// </summary>

11 public string UrlFormat
12 {
13 get
14 {
15 return _UrlFormat;
16 }

17 set
18 {
19 _UrlFormat = value;
20 }

21 }

22
23 /// <summary>
24 /// 页长度
25
26
27 /// </summary>

28 public int PageSize
29 {
30 get
31 {
32 return _PageSize;
33 }

34 set
35 {
36 _PageSize = value;
37 }

38 }

39
40 /// <summary>
41 /// 当前页码
42 /// </summary>

43 public int PageIndex
44 {
45 get
46 {
47 string Pageindex = HttpContext.Current.Request.QueryString["i"];
48 if (Pageindex != null)
49 {
50 return int.Parse(Pageindex);
51 }

52 return 1;
53 }

54 }

55
56 /// <summary>
57 /// 总记录数
58 /// </summary>

59 public int RecordCount
60 {
61 get
62 {
63 return _RecordCount;
64 }

65 set
66 {
67 _RecordCount = value;
68 }

69 }

70
71 /// <summary>
72 /// 两边显示个数
73 /// </summary>

74 public int PageCount
75 {
76 get
77 {
78 return _PageCount;
79 }

80 set
81 {
82 _PageCount = value;
83 }

84 }

85
86 protected override void Render(HtmlTextWriter writer)
87 {
88 if (RecordCount == 0)
89 return;
90 int SumPage = (RecordCount + PageSize - 1) / PageSize;
91
92 int start = PageIndex - PageCount;
93 int end = PageIndex + PageCount;
94
95 //以PageIndex为中心,前后个显示Page个页码导航
96
97
98 if (SumPage > (PageCount * 2 + 1))
99 {
100 if (start < 1)
101 {
102 start = 1;
103 end = start + 10;
104 }

105 else if (end > SumPage)
106 {
107 start = SumPage - 10;
108 end = SumPage;
109 }

110 }

111 else
112 {
113 start = 1;
114 end = SumPage;
115 }

116
117
118
119 string tmp = "<a href="" + UrlFormat + "">[{0}]</a>";
120 StringBuilder sb = new StringBuilder(string.Format("页次:{0}/{1} 每页:{2} 共计:{3} 条 ", PageIndex, SumPage, PageSize, RecordCount));
121 if (PageIndex > 1)
122 {
123 sb.Append(string.Format("<a href="" + UrlFormat + "">首页</a> ", 1));
124 sb.Append(string.Format(" <a href="" + UrlFormat + "">上一页</a> ", PageIndex - 1));
125 }

126 for (int i = start; i <= end; i++)
127 {
128 if (i == PageIndex)
129 {
130 sb.Append(" <strong>" + PageIndex.ToString() + "</strong> ");
131 }

132 else
133 {
134 sb.Append(string.Format(tmp, i));
135 }

136 sb.Append("&nbsp;");
137 }

138 if (PageIndex < SumPage)
139 {
140 sb.Append(string.Format(" <a href="" + UrlFormat + "">下一页</a> ", PageIndex + 1));
141 sb.Append(string.Format(" <a href="" + UrlFormat + "">尾页</a>", SumPage));
142 }

143 writer.Write(sb.ToString());
144 }

145 protected void Page_Load(object sender, EventArgs e)
146 {
147
148 }

149 }

使用方法:

把Pager拖拽到页面上,进入页面后台代码,设置如下:

 

1 Pager1.UrlFormat = "?i={0}";//分页格式
2 int recordcount, pagecount;
3 Repeater1.DataSource = 数据源;
4 Repeater1.DataBind();
5 Pager1.RecordCount = recordcount;
6


录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部