4

我有一个标准的 ASP.Net DataPager 和一个标准的 ListView(使用 DataTable 作为数据源)。

当我在设计代码中设置 PageSize="24" 时:

<asp:DataPager runat="server" ID="DataPager1" PagedControlID="ListView1" QueryStringField="page" PageSize="24" >

寻呼工作如广告。

但是,当我在代码中更改它时,在 Page_Load 中,例如:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    DataPager1.PageSize = 48
End Sub

分页完全停止工作,而初始加载的数据集确实是 48 项。

我在代码中看不到任何会影响这一点的东西,所以我想知道我是否遗漏了一些东西——我应该改变其他东西吗?

问候

4

2 回答 2

9
Protected Sub DataPager1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataPager1.Init
    DataPager1.PageSize = 48
End Sub

我设法通过在数据分页器的 init 事件中设置页面大小属性来实现这一点。

于 2010-07-13T01:32:20.753 回答
1

我通常会发现这种错误是数据绑定问题……要么在不应该绑定的时候绑定,要么在适当的时候不重新绑定。很难从你的一小段代码中分辨出来。

我不熟悉 DataPager 对象,但我怀疑它必须在设置 PageSize 时重新绑定数据。如果是这样,那么每次页面加载时都会重新绑定并且您正在丢失事件。你试过这个吗?

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not IsPostBack
        DataPager1.PageSize = 48
    End If
End Sub
于 2009-09-26T06:09:06.363 回答