2

我正在尝试获取我的 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 有时显示正确的页面索引,但有时显示前一页的索引。

4

2 回答 2

3

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

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

然后像这样绑定到事件:

<asp:ListView ... OnPagePropertiesChanging="ListView_PagePropertiesChanging" ... >
于 2013-05-15T17:46:48.453 回答
0

我认为以下链接将帮助您做到这一点。

http://weblogs.asp.net/hajan/archive/2011/09/08/paging-listview-using-datapager-without-using-datasource-control.aspx

http://www.4guysfromrolla.com/articles/010610-1.aspx

于 2013-06-05T05:15:50.130 回答