DataPager跳回第一页

时间:2010-08-03 15:40:02

标签: c# .net asp.net datapager

我有一个奇怪的问题,我不了解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);
 }

这一切都有效,但问题是在回发期间页面集不会记住。让我解释一下。

首页请求页面显示:

&LT;&LT; 1 2 3 4 5 ...&gt;&gt;

单击...,将显示下一组页面(并且还将显示第6页的数据)

&LT;&LT; ... 6 7 8 9 10 ...&gt;&gt;

但是当我点击第7页到第10页时,页面文本将显示第一组页面1-5。

有人可以解释为什么会这样吗?我想念一下吗?感谢。

1 个答案:

答案 0 :(得分:0)

你在错误的地方进行数据绑定。我认为这会重置分页。如果您删除lstview1.DataBind();

,请确定它不起作用

您可以查看此页面以获取示例: http://www.beansoftware.com/asp.net-tutorials/listview-datapager.aspx