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