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>

时间: 2024-11-04 10:47:37

DataList和DataRepeater分页的相关文章

为什么大家都有dategrid分页呢,在VS2005里没有这个控件,请问我如果用datalist应该怎样分页呢?谢谢!

问题描述 为什么大家都有dategrid分页呢,在VS2005里没有这个控件,请问我如果用datalist应该怎样分页呢?谢谢!我是刚学asp.net的,我用的是vs2005版本的,我想用datalist分页,请问应该怎样分页了.谢谢大家了! 解决方案 解决方案二:datagrid的设置里边有自动分页功能,datalist没有自动分页功能,要通过代码来实现datalist的分页解决方案三:你可以使用AspNetPager免费分页控件来为DataList分页,AspNetPager下载及演示地址为

asp.net中Datalist使用数字分页的实现方法

复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test(Datalist数字分页).aspx.cs" Inherits="Test_Datalist数字分页_" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

DataList 控件分页操作

分页|控件 aspx 源文件 <%@ Page language="c#" Codebehind="radionj_list.aspx.cs" AutoEventWireup="false" Inherits="radio.radio.radionj_list" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"

datarepeater分页示例

分页|示例 <%@ 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.

让DataList也能分页

分页 众所周知,ASP.Net中给我们提供了三个数据控件--DataGrid,Repeater,DataList.在这三个控件中,DataGrid控件的功能最强大,Repeater控件最忠实于模版原样,DataList控件则兼而有之. DataGrid控件太有名了,所以以前用的讲的也很多,Repeater功能太少,没有什么好讲的.这里主要是讲一讲DataList控件. DataList控件其实功能也很强大,他支持选择.编辑,实现的方法也很简单,不过最令人头疼的就是它不像DataGrid控件一样内

asp.net中Datalist使用数字分页的实现方法_实用技巧

复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test(Datalist数字分页).aspx.cs" Inherits="Test_Datalist数字分页_" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "

ASP.NET自定义控件 第十天 实现分页功能的DataList

1. 引言 在ASP.NET中DataList可以实现数据展示,我们可以通过定制其模版实现丰富 的格式,但是美中不足的时DataList默认情况下不支持分页,我们当然可以编写 一个用户控件以实现分页功能,但是这种方案仍然不是很好,我们希望像使用普 通ASP.NET服务器端控件一样,只需要放置一个DataList并设置分页样式就可以输 出分页链接. 在上次任务中我们创建了DataPager类将创建分页的操作从GridView分离出来 ,本次任务将尝试重用DataPager类为DataList增加分

DataList分页,大家帮帮忙```

问题描述 我点下一页,到第2页他就点不下去了,没反映.然后点上一页,就抱错说索引范围,不能为负数.我是新手大家看看代码,帮帮小弟protectedvoidLinkButton1_Click(objectsender,EventArgse)//上一页{this.Label2.Text=Convert.ToString(Convert.ToInt32(this.Label2.Text)-1);intcurpage;curpage=Convert.ToInt32(this.Label2.Text);d

datalist分页

问题描述 求datalist控件分页代码,我的数据库是Access 解决方案 解决方案二: 解决方案三:aspnetpager解决方案四:http://blog.csdn.net/xianfajushi/article/details/7015535