Из всего, что я прочитал, казалось, что добавление пейджинга в элемент управления ListView должно быть простым, но оно не работает для меня. После добавления элементов управления ListView и DataPager в форму и их проводки, я получаю очень странное поведение. DataPager правильно ограничивает размер страницы ListView, но нажатие кнопок поискового вызова вообще не влияет на ListView. Кнопки поискового вызова, похоже, считают, что они выполняют задание, поскольку последняя кнопка отключена, когда вы переходите на последнюю страницу и т.д., Но ListView никогда не изменяется. Кроме того, для DataPager требуется два клика, чтобы заставить его что-либо сделать, т.е. Нажатие на "Последний раз" ничего не делает, но при повторном нажатии на него 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