【问题标题】:Get current page number of DataPager获取DataPager的当前页码
【发布时间】: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 事件,其中值是新的。

标签: asp.net .net .net-3.5


【解决方案1】:

可能您尝试计算当前页码。您的代码没有指明您在哪里执行此操作,但正确的位置是在 ListViewPagePropertiesChanging 事件期间。像这样:

protected void ListView_PagePropertiesChanging(object sender,PagePropertiesChangingEventArgs e)    
{
    int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;
}

然后像这样绑定到事件:

<asp:ListView ... OnPagePropertiesChanging="ListView_PagePropertiesChanging" ... >

【讨论】:

  • 我试过在 Page_Load 事件和 ListView_PagePropertiesChanging 事件上调用它,结果都是一样的
  • 第一页的 StartRowIndex 有什么价值?
  • 第一页为 0,第二页为 0
  • 这很奇怪。老实说,我在这里不知所措。我不确定如何进行。如果您愿意,我唯一可以建议的是创建一个仅具有该功能的新项目。通过这种方式,您可以隔离问题可能是什么。以我的经验,像这样的情况,一切看起来都应该正常工作,最终是由我们从未预料到的事情造成的。请让我了解您的最新进展。
  • 我刚刚也尝试在 listview 上使用 StartRowIndex 方法,我收到以下错误消息:'ListView.StartRowIndex' is inaccessible due to its protection level
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
  • 2015-07-20
  • 2022-12-14
  • 1970-01-01
相关资源
最近更新 更多