我有一个 ListView 与三个与之关联的 DataPager,都在一个 UpdatePanel 内。
第一个 DataPager 仅显示上一页的链接:
<asp:DataPager ID="dpPrev" runat="server" PagedControlID="lvExperiences" QueryStringField="page" PageSize="4">
<Fields>
<asp:NextPreviousPagerField ShowNextPageButton="false" ButtonCssClass="PagePrev" />
</Fields>
</asp:DataPager>
第二个是用于页面的常规顺序:
<asp:DataPager ID="dpList" runat="server" PagedControlID="lvExperiences" QueryStringField="page" PageSize="4">
<Fields>
<asp:NumericPagerField ButtonType="Link" CurrentPageLabelCssClass="PageCurrent" />
</Fields>
</asp:DataPager>
最后一个是指向下一页的链接:
<asp:DataPager ID="dpNext" runat="server" PagedControlID="lvExperiences" QueryStringField="page" PageSize="4">
<Fields>
<asp:NextPreviousPagerField ShowPrevPageButton="false" ButtonCssClass="PagePrev" />
</Fields>
</asp:DataPager>
我将这些控件分开放置,因此我可以禁用代码后面的上一个/下一个链接,具体取决于我们是否在第一页/最后一页:
Protected Sub lvExperiences_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvExperiences.DataBound
Dim page As Integer = 1
If Not Request("page") Is Nothing Then
page = Integer.Parse(Request("page"))
End If
dpPrev.Visible = ((dpPrev.PageSize * page) > dpPrev.TotalRowCount And (page > 1))
dpNext.Visible = ((dpNext.PageSize * page) < dpNext.TotalRowCount)
End Sub
?page=X
它工作得很好,但是,这样的DataPager 正在更改 URL 以添加PostBack
. 如果我从s 中删除DataBound
方法和QueryStringField
属性,则执行其工作并仅刷新.DataPager
UpdatePanel
ListView
有谁知道不使用QueryStringField
属性就可以知道当前页面的方法?
非常感谢,