获取DataPager的当前页码

时间:2013-05-15 17:03:03

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

我正在尝试获取ListView当前页面的页码。我正在使用带有以下代码的DataPager组件:

int CurrentPage = ((DataPager1.StartRowIndex) / DataPager1.MaximumRows) + 1;

尝试获取加载时的页码,即用户浏览页面时的页码,但是发生的是DataPager1.StartRowIndex返回上一页的索引而不是新页面的索引,因此,我的页数计算错误。

在上面的例子中 - MaximumRows = 15.我希望StartRowIndex在第一页上等于0,因此(0/15)+1会给我一个页码1.在第2页我希望StartRowIndex到等于15,因此当前页码为2。


提供进一步资料:

我正在使用listview组件 -

<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有时会显示正确的页面索引,但其他时间会显示previos页面的索引。

2 个答案:

答案 0 :(得分:3)

时,您可能正在尝试计算当前页码。您的代码并未指明您在何处执行此操作,但正确的位置是在 ListView PagePropertiesChanging事件期间。像这样:

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

然后像这样绑定到事件:

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

答案 1 :(得分:0)