0

pagertemplateを備えたdatapagerがあります。テンプレートには、すべてのレコードを表示するようにデータページャーの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)sender; if(lb!= null){lb.Visible = false; }

rangeList.DataBind(); }

最初のクリックは正常に機能し、ListViewを更新します。これにより、ページャーが調整され、すべての結果を含む1つのページが表示されますが、ボタンが希望どおりに消えません。

何か案は?

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(); 
}

編集

2番目の「ページの表示」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(); 
}
于 2009-09-02T14:45:24.963 に答える