DataList和DataRepeater分页

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

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

<titleDataRepeater</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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航