DataPager について理解できない奇妙な問題があります。ページ セットを変更した後 (たとえば、6 ~ 10 ページ)、ページ (6、7、8、9、または 10) をクリックすると、再び 1 から数えて最初のページ セットに表示されます。
説明させてください。Listview と DataPager を使用した ASP.Net ページがあります。
<asp:ListView ... DataSourceId="EntityDataSource" DataKeyNames="id">
<LayoutTemplate>
<asp:DataPager runat="server" ID="DataPager1" PageSize="15">
<Fields>
<asp:NextPreviousPagerField FirstPageText="<<" ShowFirstPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
<asp:NumericPageField />
<asp:NextPreviousPagerField LastPageText=">>" ShowLastPageButton="True" ShowNextPageButton="False"
ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
</LayoutTemplate>
</asp:ListView>
データを更新するには、PreRender 中に DataBind を実行します。
protected override void OnPreRender(EventArgs e)
{
lstview1.DataBind();
base.OnPreRender(e);
}
これはすべて機能しますが、問題は、一連のページがポストバック中に記憶されないことです。これを説明しましょう。
ページの最初のリクエストにより、ページは次のように表示されます。
<< 1 2 3 4 5 ... >>
…をクリックすると次のページが表示されます(6ページ目のデータも表示されます)。
<< ... 6 7 8 9 10 ... >>
しかし、7 ~ 10 ページをクリックすると、ページのテキストに最初の 1 ~ 5 ページのセットが表示されます。
誰かがなぜこれが起こるのか説明できますか? 私は何かを逃しますか?ありがとう。