2011-11-11 25 views
1

WebフォームにA | B | C | D ..... | Zリンクボタンがあります。今私はすべてのリンクボタンを処理するために、コード内に単一のイベントを追加する必要があります。単一のイベントハンドラにすべてのイベントをサブスクライブしますc#asp.net内の複数のリンクボタンの単一イベントを処理する方法

button1.Click += new EventHandler(Button_Click); 

button2.Click += new EventHandler(Button_Click); 

button3.Click += new EventHandler(Button_Click); 

...... 

:C#のasp.netと同様

答えて

2

あなたがイベントを設定dynamicalyに意味するものではありませんでした場合は、あなただけのすべてのボタンのonclickイベントで同じethodを設定します。

<asp:LinkButton id="btnA" Text="A" runat="server" OnClick="myMethod" /> 
<asp:LinkButton id="btnB" Text="B" runat="server" OnClick="myMethod" /> 

背後にあるコードで:

potected void myMethod(object sender, EventArgs e) 
{ 
    .... 
} 

これは動作するはずです...

また、OnClickの代わりに、CommandNameを設定して、LinkBut​​tonごとにCommandArgumentを設定して、異なるパラメータを渡すこともできます。次に、メソッドシグネチャのコードビハインドで、EventArgsではなくCommandEventArgsを設定する必要があります。

+0

返信ありがとうございます。それはまた私のために働く。 –

+0

しかしどのボタンが押されたのかを知るには? –

+0

私は自分の答えを編集したばかりです。私はCommandNameを使用して答えを見つけ、各ボタンのCommandArgumentsを設定するべきだと思います。 – Goran

2

利用を行う方法。 あなたは、イベントハンドラをクリックされたボタンを取得することができます: -

private void Button_Click(object sender, System.EventArgs e) 
{ 
    Button b = (Button) sender; 
    Label1.Text = b.ID; 
} 
+0

返事に感謝を。 –

+0

私は自分のコードに実装しています。しかし、特定のボタンをクリックするとハンドライベントは呼び出されません。 –

+0

button1.Click + = new System.EventHandler(this.someEventHandler); button2.Click + =新しいSystem.EventHandler(this.someEventHandler); button3.Click + =新しいSystem.EventHandler(this.someEventHandler); Page_Init()メソッドに入れる必要があります。それはうまくいきます。お気軽に –

2

これらのボタンまたはLinkBut​​tonのイベントハンドラをPage_Initに関連付け、要求を行った送信者コントロールを確認します。

protected void Page_Init() 
      { 
       LinkButton1.Click += Link_Click; 
       LinkButton2.Click += Link_Click; 
       LinkButton3.Click += Link_Click; 
       LinkButton4.Click += Link_Click; 
      } 

はあなたのポストバック対応コントロールによる制御をキャストのどちらか、それはボタンまたはLinkBut​​tonコントロールで、そのコントロールを識別するために、そのコントロールのいくつかの制御perpertyを確認してください。

private void Link_Click(object sender, EventArgs e) 
    { 
     LinkButton button = sender as LinkButton; 
     if (button.Text == "LinkButton1") 
     { 
      Response.Write("<script>alert('link1');</script>"); 
     } 
     else if (button.Text == "LinkButton2") 
     { 
      Response.Write("<script>alert('link2');</script>"); 
     } 
    } 

あなたは、などの制御のために確認することができます:それは私には便利..です

Button button = (Button)sender; 
if(button is Button1) 
{ 
.. 
} 
+0

gr8ありがとうございました。それはうまく動作しています.. –

関連する問題