0

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="&lt;&lt;" ShowFirstPageButton="True" ShowNextPageButton="False"
                        ShowPreviousPageButton="False" />
                <asp:NumericPageField />
                 <asp:NextPreviousPagerField LastPageText="&gt;&gt;" 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 ページのセットが表示されます。

誰かがなぜこれが起こるのか説明できますか? 私は何かを逃しますか?ありがとう。

4

1 に答える 1

0

間違った場所でデータバインドしています。これでページングがリセットされると思います。を削除すると機能しなくなりlstview1.DataBind();ますか?

このページで例を確認できます: http://www.beansoftware.com/asp.net-tutorials/listview-datapager.aspx

于 2010-08-03T15:58:15.050 に答える