DataList和DataRepeater分页

原创 2004年07月06日 16:21:00

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>

DataList和DataRepeater分页

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 13:17
  • 93

关于DataList和DataRepeater分页

先引用他人一篇文章ASP.NET中的DataList和DataRepeater提供了简单快速的方法來显示,其间,我们可以使用更是使我们能随心所欲的控制数据的排放样式!.可惜的是它们不像Datagrid...
  • zsxfbj
  • zsxfbj
  • 2005年04月14日 11:08
  • 1089

Datalist控件实现分页功能

在.aspx页面里的代码 ...
  • fengqiyunran
  • fengqiyunran
  • 2009年07月22日 21:43
  • 1641

实现DataList分页方法

前几天在做网上商城,要展示商品信息(有图片,有文字),DataView虽然可以分页,但它的缺点是不能自定义显示格式。而DataList解决了它的缺点,但DataList本身却不能分页。很是头痛,于是在...
  • mane_yao
  • mane_yao
  • 2010年03月22日 10:56
  • 12976

datalist控件的分页(下载示例与自己改写示例)

  1、参考示例http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/1999/xhtml" >    ...
  • wygyhm
  • wygyhm
  • 2008年02月06日 16:52
  • 1054

C# ASP.NET AspNetPager对DataList控件分页

1、控件代码段DataList数据绑定 < asp:DataList ID=”DataList1” runat=”server” RepeatColumns=”2” RepeatDirection=...
  • u010075060
  • u010075060
  • 2015年04月19日 21:43
  • 597

如何让DataList分页功能[C#](转载)

一.前言使用asp.net 的Gridview控件,你可以方便地进行数据绑定、分页显示,模板能让数据显示更加多姿多彩,但是Gridview显示只能按记录一行一行垂直显示,不能横排,它更多地用来显示普通...
  • xinghongyang
  • xinghongyang
  • 2008年05月20日 15:10
  • 480

C#中DataList分页--使用PagedDataSource实现

Default.aspx代码:
  • icehaopan
  • icehaopan
  • 2010年12月14日 10:16
  • 2170

DataList 增删改查、分页

前端展示如下:
  • li185416672
  • li185416672
  • 2014年11月23日 16:02
  • 1983

asp.net总结之Repeater,DataList和DataGrid

从项目开始到结束纯的用在此项目的时间为半个月的时间,其中将视频中讲到的大例子做了一遍,过程还是很可贵的,在这个视频中主要学到了HTML控件和WEB控件,知道了使用动态控件和静态控件的利弊,了解了这两种...
  • cjr15233661143
  • cjr15233661143
  • 2013年08月22日 10:46
  • 3916
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DataList和DataRepeater分页
举报原因:
原因补充:

(最多只允许输入30个字)