当显示2个DataPagers时,PagePropertiesChanging事件不会触发绑定到ListView的DataPager

时间:2013-12-12 15:52:37

标签: c# asp.net listview datapager

我有一个包含两个DataPagers的页面,一个位于上面,一个位于他们控制的ListView之下。所有事件都在第一个DataPager上触发,但是任何后续的DataPagers都不会在第一页上增加页面(它们在任何其他页面上都会增加)。

<asp:DataPager runat="server" ID="uxTopPager" PagedControlID="uxFundList" PageSize="10" OnPreRender="PagerPreRender">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" ButtonCssClass="NextPrevious" ShowFirstPageButton="False" ShowLastPageButton="False" />
</Fields>
</asp:DataPager>
<table>
<th><!-- Table Headers --></th>
<asp:ListView runat="server" ID="ListView1" OnItemDataBound="FundListItemDataBound" OnPagePropertiesChanging="FundList_PagePropertiesChanging">
<ItemTemplate>
<tr><!-- Table Data--></tr>
</ItemTemplate>
</asp:ListView>
<asp:DataPager runat="server" ID="uxBottomPager" PagedControlID="uxFundList" PageSize="10"  OnPreRender="PagerPreRender">
<Fields>
<asp:NextPreviousPagerField ButtonType="Link" ButtonCssClass="NextPrevious" ShowFirstPageButton="False" ShowLastPageButton="False" />
</Fields>
</asp:DataPager>

每个传呼机应触发以下事件:

protected void PagerPreRender(object sender, EventArgs e)
    {
    uxFundList.DataBind();
    }
    protected void FundList_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
    {
    uxFundList.DataBind();
    uxTopPager.SetPageProperties(((e.StartRowIndex- 1) * PageSize), uxTopPager.PageSize, false);
    uxBottomPager.SetPageProperties(((e.StartRowIndex- 1) * PageSize), uxBottomPager.PageSize, false);
    }

然而,底层寻呼机(uxBottomPager)仅触发PagerPreRender(),因此不会增加当前页面。

我无法使用查询字符串来控制页面,因为我有大量的变量会导致查询字符串无法使用。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这对我有用

protected void FundList_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e)
{
    uxTopPager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
    uxBottomPager.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
    BindListView();    //Function where datas are binded to listview
}