我有一个奇怪的问题,我不了解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);
}
这一切都有效,但问题是在回发期间页面集不会记住。让我解释一下。
首页请求页面显示:
&LT;&LT; 1 2 3 4 5 ...&gt;&gt;
单击...,将显示下一组页面(并且还将显示第6页的数据)
&LT;&LT; ... 6 7 8 9 10 ...&gt;&gt;
但是当我点击第7页到第10页时,页面文本将显示第一组页面1-5。
有人可以解释为什么会这样吗?我想念一下吗?感谢。
答案 0 :(得分:0)
你在错误的地方进行数据绑定。我认为这会重置分页。如果您删除lstview1.DataBind();
?
您可以查看此页面以获取示例: http://www.beansoftware.com/asp.net-tutorials/listview-datapager.aspx