注册
 找回密码
 注册
江西广告网
查看: 211|回复: 0
打印 上一主题 下一主题

DataList和DataRepeater分页

[复制链接]

该用户从未签到

1
跳转到指定楼层
发表于 2008-12-24 11:59:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
  ASP.NET中的DataList和DataRepeater提供了简单快速的方法來显示,其间,我们可以使用<ItemTemplate>更是使我们能随心所欲的控制数据的排放样式!.可惜的是它们不像Datagrid那样,有内置的分页功能。      如何解决呢?      其实我们可以【PagedDataSource】 类来解决分页的问题。      PagedDataSource类的属性:      DataSource -数据源      AllowPaging - true 是否允许分页.   PageSize - 每页项目数量   PageCount - 总页数      CurrentPageIndex - 当前所在的页索引   代码如下:      <%@ Page Language="VB" %>   <%@ import Namespace="System.Data" %>   <script runat="server">     Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs)          Dim Pgds As PagedDataSource = New PagedDataSource       Pgds.DataSource = CreateDataSource().DefaultView       Pgds.AllowPaging = True       Pgds.PageSize = 6       lblTotalPage.Text = Pgds.PageCount.ToString()          Dim CurrentPage As Integer       If Not Request.QueryString("Page") Is Nothing Then         CurrentPage = Convert.ToInt32(Request.QueryString("Page"))       Else         CurrentPage = 1       End If          Pgds.CurrentPageIndex = CurrentPage - 1       lblCurrentPage.Text = CurrentPage.ToString()          If Not Pgds.IsFirstPage Then         lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath "?Page=" Convert.ToString(CurrentPage - 1)       End If          If Not Pgds.IsLastPage Then         lnkNext.NavigateUrl = Request.CurrentExecutionFilePath "?Page=" Convert.ToString(CurrentPage 1)       End If          Repeater1.DataSource = Pgds       Repeater1.DataBind()        End Sub      Function CreateDataSource() As Datatable      Dim dt As DataTable   Dim dr As DataRow   Dim i As Integer          dt = New DataTable       dt.Columns.Add(New DataColumn("IntegerValue", GetType(Integer)))       dt.Columns.Add(New DataColumn("StringValue", GetType(String)))       dt.Columns.Add(New DataColumn("DateTimeValue", GetType(DateTime)))       dt.Columns.Add(New DataColumn("BoolValue", GetType(Boolean)))      For i = 0 To 50   dr = dt.NewRow()   dr(0) = i   dr(1) = "Item " i.ToString()   dr(2) = DateTime.Now.ToShortTimeString   If (i Mod 2 <> 0) Then   dr(3) = True   Else   dr(3) = False   End If      dt.Rows.Add(dr)   Next      Return dt      End Function      </script>      <html><head>   <title>DataRepeater</title>   <style type=text/css>      BODY {   FONT: 10px Verdana, Arial, Helvetica, "sans serif"; COLOR: #000000;   }   .txt {   FONT-SIZE: 12px   }   </style>   </head>   <body>   <form id="Form1" name=form1 method=post runat="server">   <table class=txt width="100%" border=0>   <tbody><tr><td>      <asp:hyperlink id=lnkPrev runat="server">上页</asp:hyperlink>    <asp:hyperlink id=lnkNext runat="server">下页</asp:hyperlink>第   <asp:label id=lblCurrentPage runat="server"></asp:label> 页 共 <asp:label id=lblTotalPage runat="server"></asp:label>页      </td></tr></tbody></table>   <asp:repeater id=Repeater1 runat="server">      <ItemTemplate>   <hr align="left" width="60%" size="1">   <table class=txt width="100%" border="0">   <tr>   <td>   Order Date: <%# DataBinder.Eval(Container.DataItem, "DateTimeValue", "{0:d}") %>   </td><tr><td>   Quantity: <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:N2}") %>   </td><tr><td>   Item: <%# DataBinder.Eval(Container.DataItem, "StringValue") %>   </td><tr><td>   Order Date: <asp:checkbox id=chk1 checked='<%# DataBinder.Eval(Container.DataItem, "BoolValue") %>' runat="server"/>   </td></tr></table>   </ItemTemplate>      </asp:repeater>   <hr hight="1">      </form>      </body>      </html>    <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表