DataPager模板和帮助的一些帮助; LinkBut​​ton好吗?

时间:2009-09-02 13:43:41

标签: asp.net listview datapager pagertemplate

我有一个带有pagertemplate的数据页。在模板中,我有一个“全部显示”按钮,它设置数据抓取器的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,然后调整寻呼机以显示包含所有结果的一个页面,但按钮不会像我想要的那样消失。

有什么想法吗?

1 个答案:

答案 0 :(得分: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,它最初是不可见的,当单击Show All LinkBut​​ton时(上图)变为可见。单击此新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(); 
}