datalist分页

ASP.NET中的DataListDataRepeater提供了简单快速的方法來显示,其间,我们可以使用 更是使我们能随心所欲的控制数据的排放样式!.可惜的是它们不像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>

 

 

上页

  下页

 

 

 


Order Date: <%# DataBinder.Eval(Container.DataItem, "DateTimeValue", "{0:d}") %>

Quantity: <%# DataBinder.Eval(Container.DataItem, "IntegerValue", "{0:N2}") %>

Item: <%# DataBinder.Eval(Container.DataItem, "StringValue") %>

Order Date:

 


 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值