【发布时间】:2013-05-10 09:01:17
【问题描述】:
我正在尝试获取我的 ListView 的当前页面的页码。我正在使用带有以下代码的 DataPager 组件:
int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;
尝试获取加载时的页码,即当用户浏览页面时,但是发生的是 DataPager1.StartRowIndex 返回上一页而不是新页面的索引,因此,我的页数计算错误。
在上述情况下 - MaximumRows = 15。我希望 StartRowIndex 在第一页上等于 0,因此 (0/15)+1 会给我一个页码 1。在第 2 页上,我希望 StartRowIndex 为等于 15,因此当前页码为 2。
提供更多信息:
我正在使用列表视图组件 -
<asp:ListView ID="lvQuals" runat="server" DataSourceID="dsListQual"
OnItemDataBound="lvQuals_ItemDataBound"
OnPagePropertiesChanged="lvQuals_PagePropertiesChanged">
后面有以下代码 -
public void lvQuals_PagePropertiesChanged(object sender, EventArgs e)
{
ToggleArchivedLink();
}
protected void ToggleArchivedLink()
{
int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;
DataPager1.StartRowIndex 有时显示正确的页面索引,但有时显示上一页的索引。
【问题讨论】:
-
StartRowIndex表示页面显示的第一条记录的索引。恐怕你的问题是别的。 -
您能否提供一些 StartRowIndex、MaximumRows、CurrentPage 的示例值以及您期望 CurrentPage 的值?
-
@ShaiCohen 用一个例子更新了帖子
-
您的计算看起来正确。您为第一页的 StartRowIndex 获得了什么值?
-
您试图在代码的哪一部分中获取
StartRowIndex的值?因为它可能还没有用新值更新,这就是你得到旧值的原因。您可以尝试 DataPager.PreRender 事件,其中值是新的。