0

我有一个带有分页模板的数据分页器。在模板中,我有一个“显示全部”按钮,它设置数据分页器的 PageSize 以显示所有记录。这工作正常,但我希望能够在单击按钮时隐藏它。它在 UpdatePanel 中,所以我不知道这是否有区别?

       <asp:DataPager ID="Pager" runat="server" PagedControlID="rangeList" PageSize="15" EnableViewState="false">                       
    <Fields>
     <asp:TemplatePagerField>
      <PagerTemplate>
       <asp:LinkButton ID="LinkButton1" runat="server" CommandArgument="<%# Container.TotalRowCount.ToString() %>"
        oncommand="LinkButton1_Command" >Show All Ranges</asp:LinkButton>&nbsp;&nbsp;
      </PagerTemplate>
     </asp:TemplatePagerField>
     <asp:numericpagerfield ButtonCount="10" NextPageText="..." PreviousPageText="..." CurrentPageLabelCssClass="pageOn" />
    </Fields>        
   </asp:DataPager>

和代码隐藏:

 protected void LinkButton1_Command(object sender, CommandEventArgs e)

{ this.Pager.PageSize = int.Parse(e.CommandArgument.ToString());

LinkBut​​ton lb = (LinkBut​​ton) 发送者;if (lb != null) { lb.Visible = false; }

rangeList.DataBind(); }

第一次单击工作正常,并刷新 ListView 进而调整寻呼机以显示一个包含所有结果的页面,但按钮并没有像我想要的那样消失。

有任何想法吗?

4

1 回答 1

0

如果分页器中没有可显示的内容,为什么不隐藏分页器控件本身:

protected void LinkButton1_Command(object sender, CommandEventArgs e)
{ 
    this.Pager.PageSize = int.Parse(e.CommandArgument.ToString());
    this.Pager.Visible = false; 
    lnkShowPages.Visible = true; // EDIT only
    rangeList.DataBind(); 
}

编辑

您可以有第二个“显示页面”链接按钮,它最初是不可见的,当单击“显示所有链接按钮”时变为可见(上图)。当单击这个新的 LinkBut​​ton 时,它可以通过设置 Pager 的 PageSize 和可见性并隐藏自身来启用分页:

protected void lnkShowPages_Command(object sender, CommandEventArgs e)
{ 
    this.Pager.PageSize = int.Parse(e.CommandArgument.ToString());
    this.Pager.Visible = true; 
    lnkShowPages.Visible = false; 
    rangeList.DataBind(); 
}
于 2009-09-02T14:45:24.963 回答