之前给大家介绍了分页技术之Gridview控件,几天给大家介绍另外一种分页技术,采用PageDataSource类 + Repeater控件来实现。
前台只需要拖出一个Repeater控件来绑定要显示数据即可。
后台代码的实现具体步骤如下:
第一步:连接数据库获取要显示的内容
1
2
3
4
5
6
7
8 |
//连接数据库及将数据封装到一个数据集中<br> Db db = new Db(); DataSet ds = db.GetDataSet ( sql ); //将DataSet绑定到PageDataSource PagedDataSource ps = new
PagedDataSource(); ps.DataSource = ds.Tables[0].DefaultView; |
第二步:设置PageDataSource相关属性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
//设置属性为允许分页 ps.AllowPaging = true ; //获取当前页面数 int CurPage; if (Request.QueryString[ "Page" ] != null ) //当前请求页面 CurPage = Convert.ToInt32(Request.QueryString[ "Page" ]); else CurPage = 1; //每个页面显示的条数 ps.PageSize = 20; //求数据的总数 allmsg.Text = ps.DataSourceCount.ToString(); ps.CurrentPageIndex = CurPage - 1; //求总页数 allpages.Text = ps.PageCount.ToString(); nowpage.Text = CurPage.ToString(); |
第三步:将数据源绑定到Repeater控件
1
2
3
4
5 |
//将数据源与控件绑定 Repeater1.DataSource = ps; Repeater1.DataBind(); |
第四步:设置‘上一页’、‘下一页’、‘首页’、‘尾页’按钮的链接URL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 |
if (!ps.IsFirstPage) { //首页页 firstpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1&id="
+ articleid + "" ; //上一页 divpage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" +Convert.ToString(CurPage - 1)+ ""
+ "&id=" +articleid+ "" ; } if
(!ps.IsLastPage) { //下一页 nextpage.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1)+ ""
+ "&id=" +articleid+ "" ; // 尾页 endpage.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" +Convert.ToString(ps.PageCount) + ""
+ "&id="
+ articleid + "" ; } |
分页技术之PageDataSource类,布布扣,bubuko.com
原文:http://www.cnblogs.com/lhm814/p/3654824.html