2012-03-22 14 views
0

リピータには、とりわけ2つのボタンが含まれています。ボタンの1つはASP.NETボタンで、もう1つはタイプ "input type =" button ""です。リピータからHTMLボタンを取得する

私のコードビハインドでは、リピータから両方のボタンを取得して非表示にしたり、表示したりしたいと考えています。私は正常にASP.NETのボタンを隠しているが、私は他のボタンを取得する方法を知らない。ここで

は、ASP.NETでいくつかのコードです:ここでは

<input type="button" name="ButtonEditUpdate" runat="server" value="Edit Update" class="ButtonEditUpdate" /> 
<asp:Button ID="ButtonDeleteUpdate" CssClass="ButtonDeleteUpdate" CommandName="Delete" runat="server" Text="Delete Update" /> 

は、コードビハインドである:それはASPではないので

protected void RepeaterUpdates_ItemBinding(object source, RepeaterItemEventArgs e) 
{ 
    RepeaterItem item = e.Item; 
    TextBox Update_ID = (TextBox)item.FindControl("TextBoxUpdateID_Repeater"); 
    //Button Edit_Update = (Button)item.FindControl("ButtonEditUpdate"); 
    Button Delete_Update = (Button)item.FindControl("ButtonDeleteUpdate"); 

    if (Social_ID == String.Empty) 
    { 
     //Edit_Update.Visible = false; 
     Delete_Update.Visible = false; 
    } 
} 

は、どのように私はHTMLボタンを取得し、それを隠すことができます.NETボタン?

答えて

0

となることを

+0

ありがとう:)それは完璧に働いた:) – Matthew

0

視界を設定したいだけなら、キャストする必要はありません。

var myButton = e.Item.FindControl("ButtonEditUpdate"); 
if(myButton != null) 
    myButton.Visible = false; 

EDIT:あなたのIDにIDを付ける必要があります。ボタンは、HTMLコントロールであり、ASP.NETは、と考えているので、あなたががまっすぐは普通の古いHTMLボタンを取得することはできません一般的にはタイプSystem.Web.UI.HtmlControls.HtmlButton

System.Web.UI.HtmlControls.HtmlButton button = item.FindControl("ButtonEditUpdate") as System.Web.UI.HtmlControls.HtmlButton; 
if(button!=null) 
     button.Visible = false; 
+0

の背後にあるコードで次にid属性

<input type="button" name="ButtonEditUpdate" runat="server" value="Edit Update" class="ButtonEditUpdate" id="ButtonEditUpdate" /> 

を必要としないのはなぜdynamicキーワード? – Pankaj

2

テキストマークアップの一環として。幸いにも、あなたのボタンをサーバーコントロールにするために既にrunat="server"を追加しました。

最も簡単な方法は、HtmlButtonコントロールを使用することです。しかし、あなたのマークアップで、あなたは

//Button Edit_Update = (Button)item.FindControl("ButtonEditUpdate"); 
HtmlButton Delete_Update = (HtmlButton)item.FindControl("ButtonEditUpdate"); 
+0

コントロールがnullだったかどうかを確認するために+1 – Lloyd

関連する問題