使用DataList 分页方法

什么是DataList我想应该不需要解释了,接下来分享本人在项目里使用到的通过DataList进行分页展示方法。

首先在ASPX页面添加一个DataList(后面都简称DL)控件,示例代码如下:

1  <asp:DataList ID="DL_BadReason" runat="server" Width="100%" 
2 ////////////////////中间嵌套你需要展示出来的数据和方法的ID////////
3  </asp:DataList>

此例中展示的风格是通过下拉列表来进行分页跳转(当然,这样做是无法和高大上的Ajax来进行分页来的给力,后面有时间虾哥将会再写一个AJAX分页DEMO分享给码友们

在前台页面再添加一个DropList控件来绑定页数,以便进行分页跳转,示例代码如下:

1  <asp:DropDownList ID="YourName" runat="server" AutoPostBack="true" OnSelectedIndexChanged="YourName">
2  </asp:DropDownList>

前台搞定!接下来就是后台代码实现了,代码逻辑很简单,这里就不多注释太多了。示例代码如下:

 1         if (dtBadReason.Rows.Count > 0) //这里的dtBadReason是你从数据库查询出来的数据源
 2         {
 3             try
 4             {
 5                //DL:DataList
 6 
 7                 this.DL.DataSource = dvBadReason;
 8                 DL.DataBind();
 9                 DL.HorizontalAlign = HorizontalAlign.Center;
10 
11                 //使用PageDataSource
12                 PagedDataSource PgB = new PagedDataSource();
13                 PgB.DataSource = dvBadReason;
14                 //设定条数
15                 PgB.PageSize = 15;
16                 PgB.AllowPaging = true;
17 
18                 //分页设定
19                 int CurrentPage = Get_CurrentPage();
20                 PgB.CurrentPageIndex = CurrentPage - 1;
21                 lbPage.Text = String.Format("{2}&nbsp;{0}&nbsp;{4}&nbsp;,&nbsp;{3}&nbsp;{1}&nbsp;{4}"
22                                         , CurrentPage.ToString()
23                                         , PgB.PageCount.ToString()
24                                         , ""
25                                         , ""
26                                         , "");
27 
28                 DL_BadReason.DataSource = PgB;
29                 DL_BadReason.DataBind();
30 
31                 ddlPage.Items.Clear();
32                 ddlPage.Items.Add("请跳页");
33                 ListItem oItm = new ListItem();
34                 for (int i = 0; i < PgB.PageCount; i++)
35                 {
36                     int iPage = i + 1;
37                     oItm.Text = String.Format("{1}{0}{2}", iPage.ToString(), "", "");
38                     oItm.Value = iPage.ToString();
39                     ddlPage.Items.Add(new ListItem(oItm.Text.Trim(), oItm.Value));
40                 }
41 
42 
43             }
44             catch (Exception ex)
45             {
46                 Response.Write("<b>Error Message-- </b>" + ex.Message.ToString());
47             }
48         }

虽然这种分页方法远没有我们自己手写个存储过程再结合AJAX来进行分页爽,而且性能不高,用户体验效果也不理想。但这恰恰却适用于一些只需要用来展示数据的项目。当然,这比Repter好多了!

最终分页效果如下:

posted @ 2014-04-15 13:38  许大虾  阅读(862)  评论(0编辑  收藏  举报