江西广告网
标题:
DataList和DataRepeater分页
[打印本页]
作者:
蓝信子
时间:
2008-12-24 11:59
标题:
DataList和DataRepeater分页
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> <
欢迎光临 江西广告网 (http://bbs.jxadw.com/)
Powered by Discuz! X3.2