在代码中设置PageSize时,DataPager停止工作

时间:2009-09-24 14:07:06

标签: asp.net vb.net datapager

我有一个标准的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项。

我在代码中看不到会影响这一点的任何内容,所以我想知道我是否遗漏了某些内容 - 我是否应该更改其他内容?

此致

2 个答案:

答案 0 :(得分:9)

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

我设法通过在数据包的init事件中设置页面大小属性来实现此功能。

答案 1 :(得分: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