DataPager вернуться к первым страницам - PullRequest
0 голосов
/ 03 августа 2010

У меня странная проблема, которую я не понимаю в DataPager.После изменения набора страниц (например, страниц 6 - 10) и нажатия на страницу (6, 7, 8, 9 или 10) она будет отображаться для первого набора страниц, начиная с 1.

Позволь мне объяснить.У меня есть страница ASP.Net с Listview и DataPager.

<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.

 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.

Может кто-нибудь объяснить, почему это произошло?Мисс я что-то?Спасибо.

1 Ответ

0 голосов
/ 03 августа 2010

Вы привязываете данные не в том месте. Я думаю, что это сбрасывает пейджинг. Вы уверены, что это не сработает, если вы удалите lstview1.DataBind();?

Вы можете проверить эту страницу для примера: http://www.beansoftware.com/asp.net-tutorials/listview-datapager.aspx

...