私はこの問題を何日も探し続けてきましたが、これまで多くの一般的な方法を試しましたが、まったく何もありませんでした。リストビューは、再バインドすると消えてしまいます。インデックス機能のために、List(Of KeyValuePair(Of String、Integer))をListViewにバインドしています。最初にバインドすると、うまく機能し、DataPagerの必要な制限内のすべてのキーと値のペアが表示されますが、ページャーに目を向けると、リストビューが消えます。
ListViewのPagePropertiesChangingが呼び出されたときに何が起こるかを次に示します。
Me.DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, False)
userInterface.DataPagerReBind(ListView1)
そして実際のListView
<asp:ListView ID="ListView1" runat="server" EnableTheming="True" OnPagePropertiesChanging="ListView1_PagePropertiesChanging">
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" ID="tbl1" runat="server">
<tr id="Tr2" runat="server" style="background-color: #98FB98">
<th id="Th1" runat="server">Test point name</th>
<th id="Th2" runat="server">Number of failed Test points</th>
</tr>
<tr runat="server" id="itemPlaceHolder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr id="Tr1" runat="server">
<td>
<asp:Label ID="VendorIDLabel" runat="server" Text='<%# Eval("key") %>' />
</td>
<td>
<asp:Label ID="AccountNumberLabel" runat="server" Text='<%# Eval("value") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:DataPager ID="DataPager1" runat="server" PageSize="10" PagedControlID="ListView1" >
<Fields>
<asp:NextPreviousPagerField
ButtonType="Link"
ShowFirstPageButton="True"
ShowNextPageButton="False"
ShowPreviousPageButton="False" />
<asp:NumericPagerField />
<asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True"
ShowNextPageButton="False" ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
そして、userInterface.DataPagerRebindは、リストビューを元のリストに再バインドするだけです。誰か助けてもらえますか?私は本当にここで迷子になりました、これは私を非常に長い間悩ませてきました、私がページャーを使うとき、リストビューはただ消えます。ありがとうございました。
userInterface.DataPagerReBindの定義:
Sub DataPagerReBind(ByRef listView1 As ListView)
listView1.DataSource = TestList
listView1.DataBind()
End Sub