我有一个标准的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项。
我在代码中看不到会影响这一点的任何内容,所以我想知道我是否遗漏了某些内容 - 我是否应该更改其他内容?
此致
武
答案 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