2016-12-07 78 views
0

我有一个aspx ListView控件,用于分页的数据分页器,分页工作正常。现在我有一个下拉菜单来改变页面大小,并在listview中显示相关记录。但下拉不能正常工作。从另一个函数调用listview OnPagePropertiesChanging功能在asp.net

我总共有14条记录,当我到第2页有4条记录之后,我将下拉页面大小更改为30,那么它不反映listview并仍然显示相同的4条记录。它仅将页码从第2个改为第1个。

HTML: -

<asp:DropDownList ID="ddlCount" AutoPostBack="true" runat="server" CssClass="form-control" 
SelectedIndexChanged="ddlCount_SelectedIndexChanged">     </asp:DropDownList> 

     <asp:ListView ID="lvParkingLots" runat="server" GroupPlaceholderID="grp" ItemPlaceholderID="item" 
               GroupItemCount="2" OnPagePropertiesChanging="lvPL_PagePropertiesChanging"> 
               <LayoutTemplate> 
                <table class="table table-striped tblForm" id="gs"> 
                 <tr id="grp" runat="server"> 
                 </tr> 
                 <tr class="pagination-listview"> 
                  <td></td> 
                  <td style="float: right;"> 
                   <asp:DataPager ID="dp" runat="server" PagedControlID="lvParkingLots" PageSize="30"> 
                    <Fields> 
                     <asp:NumericPagerField NextPageText="Next" PreviousPageText="Prev" /> 
                    </Fields> 
                   </asp:DataPager> 

                  </td> 
                 </tr> 
                </table> 
               </LayoutTemplate> 

C#功能: -

protected void lvPL_PagePropertiesChanging(object sender, PagePropertiesChangingEventArgs e) 
    {   
      DataPager dp = (lvParkingLots.FindControl("dp") as DataPager);    
      dp.SetPageProperties(e.StartRowIndex, e.MaximumRows, false); 
      Binddata();    
    } 

我曾尝试下面的代码,但没有工作..

protected void ddlCount_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     Binddata(); 
} 

回答

0

事件的第一个参数是类型对象,在这里它应该是ListView,第二个参数是PagePropertiesChangingEventArgs,期望StartRowIndex和MaximumRow,都是整数类型,所以你可以这样调用该方法:

int startRowIndex =2,MaximumRow=3; 
lvPL_PagePropertiesChanging(lvSample, new PagePropertiesChangingEventArgs(startRowIndex , MaximumRow)); 
// where lvSample is the listview 

在第二个例子中,你必须调用该方法是这样的:

ddlCount_SelectedIndexChanged(ddlCount, EventArgs.Empty); 
+0

现在它要lvPL_PagePropertiesChanging功能,但没有表现出相关数据。 listview具有相同的数据。 –

+0

你是否得到任何错误或例外?希望你已经通过了'e.StartRowIndex和e.MaximumRows'的正确值,你能否通过BKPS –

+0

来核对方法内部发生了什么没有例外,如何在ddlCount_SelectedIndexChanged函数中获取数据寻呼机的起始行索引? –