2009-09-02 5 views
0

私はpagertemplateを持つdatapagerを持っています。テンプレートには、すべてのレコードを表示するデータページャのPageSizeを設定する「すべて表示」ボタンがあります。これは正常に動作しますが、クリックしたときにボタンを非表示にしたいと考えています。それがUpdatePanelにあるので、それが違いを生むかどうかわかりません。DataPagerテンプレートとLinkBut​​tonのヘルプのビットはどうですか?

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

最初のクリックがうまくいき、リストビューが更新され、結果としてページが1ページ表示されるように調整されますが、ボタンは消えません。

アイデア?

+0

は、そのことについて申し訳ありませんが、コードタグのこつを得るように見えることはできません... – Dave

答えて

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

EDIT

あなたが最初に表示されていない第二の「表示ページ」LinkBut​​tonコントロールを持つことができますShow All LinkBut​​tonがクリックされたとき(上)に表示されます。この新しいLinkBut​​tonコントロールがクリックされると、それは、ポケットベルのが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(); 
} 
+0

ます私は完全に逃した最も明白なことを指摘しました...ありがとう – Dave

関連する問題