html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

如何使用PagedDataSource做DataRepeater的分的效果_.NET教程_编程技术

[ ] 已经帮助:人解决问题
ASP.NET中的DataList和DataRepeater提供了快速的方法展料,
其<ItemTemplate>更是我能心所欲的定料的排放方式.可惜的是他
不像Datagrid那,有建的分功能.

如何解不能分的呢?在篇文章中介如何使用 PagedDataSource Class 解分的.

的介常用到的 PagedDataSource Class Public Properties

DataSource - 料源
AllowPaging - true 允分;false 不允.
PageSize - 定重多少次
PageCount - 共有
CurrentPageIndex - 目前所在的
IsFirstPage - 是第一,回True or False
IsLastPage - 是最後一,回True or False

下面就是例(剪就可以直接跑了)

--------------------------------------------------------------------------------

<%@ Page Language="VB" %>
<%@ import Namespace="System.Data" %>
<script runat="server">
Sub Page_Load(Sender As Object, 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 = "Page: " + 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

'This part is an example from Asp.net QuickStart
'You can change this part with your own Dataset

Dim dt As DataTable
Dim dr As DataRow
Dim i As Integer

'create a DataTable
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)))

'Make some rows and put some sample data in
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
'add the row to the datatable
dt.Rows.Add(dr)
Next

Return dt

End Function

</script>

<html><head>
<title>DataRepeater Paging Example</title>
<style type=text/css>

BODY {
FONT: 10px Verdana, Arial, Helvetica, "sans serif"; COLOR: #000000;
}
.txt {
FONT-SIZE: 12px
}
</style>
</head>
<body>
<form name=form1 method=post runat="server">
<table class=txt width="100%" border=0>
<tbody><tr><td>

<asp:HyperLink id=lnkPrev runat="server"><< Prev</asp:HyperLink>
<asp:HyperLink id=lnkNext runat="server">Next >></asp:HyperLink>
<asp:Label id=lblCurrentPage runat="server"></asp:Label>
of <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">

<p>Datasource:Microsoft QuickStart Example

http://cht.gotdotnet.com/quickstart/aspplus/doc/webdatabinding.aspx
</p>
<p>Reference:MSDN .NET Framework Class Library

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebuiwebcontrolspageddatasourceclasstopic.asp
</p><p>
Paging with Repeater control in ASP.NET

http://www.charon.co.uk/content.aspx?CategoryID=28&ArticleID=21 </p></form></body></html>
M2nHTML5中文学习网 - HTML5先行者学习网
M2nHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助