从我读过的所有内容来看,似乎将分页添加到 ListView 控件应该非常简单,但它对我不起作用。在将 ListView 和 DataPager 控件添加到表单并将它们连接在一起之后,我的行为变得非常奇怪。DataPager 正确地限制了 ListView 的页面大小,但单击分页按钮根本不会影响 ListView。分页按钮似乎认为他们正在做他们的工作,因为当您转到最后一页等时,最后一个按钮被禁用,但 ListView 永远不会改变。此外,它需要在 DataPager 上单击两次才能使其执行任何操作,即单击 Last 一次不会执行任何操作,但再次单击它会使 DataPager 做出反应,就好像现在选择了最后一页一样。
我能想到的唯一一件事是我在运行时将 DataSource 绑定(到 LINQ 对象),而不是使用 LinqDataSource 控件或任何东西。有没有人见过这种行为?难道我做错了什么?这是我正在使用的代码:
<asp:DataPager ID="HistoryDataPager" runat="server" PagedControlID="HistoryListView" PageSize="10">
<Fields>
<asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="true" ShowLastPageButton="true" />
</Fields>
</asp:DataPager>
<asp:ListView ID="HistoryListView" runat="server">
...
</asp:ListView>
在代码隐藏中:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
HistoryListView.DataSource = From x in myContext.myTables ...
DataBind()
End If
End Sub