2009-05-06 6 views
21

私は、人々がWebコントロールのcommandParameterプロパティを通じてパラメータを渡すいくつかのコードを見てきました。そして、何がeventargsの使用です。asp.net:ボタンonclickを渡すパラメータにeventargsを使用する方法は?

+0

「誰かが、ほとんどの一般人の言葉でEventArgsの使い方を教えてもらえますか?」(http://stackoverflow.com/questions/1778952/can-someone-please-explain-to-me-in)最も一般的な - 用語 - 使用方法 - eventargs) – Toadfish

答えて

50

これは、異なるボタンに対して同じEventHandlerメソッドを使用する場合に便利です。たとえば、あなたのマークアップは次のようになります言う:

<asp:Button ID="button1" runat="server" CommandArgument="MyVal1" 
    CommandName="ThisBtnClick" OnClick="MyBtnHandler" /> 
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2" 
    CommandName="ThatBtnClick" OnClick="MyBtnHandler" /> 

あなたは両方のボタンに同じイベントハンドラを持っているとのCommandNameに基づいて区別することができます

protected void MyBtnHandler(Object sender, EventArgs e) 
{ 
    Button btn = (Button)sender; 
      switch (btn.CommandName) 
      { 
       case "ThisBtnClick": 
        DoWhatever(btn.CommandArgument.ToString()); 
        break; 
       case "ThatBtnClick": 
        DoSomethingElse(btn.CommandArgument.ToString()); 
        break; 
      } 
} 

出典:aspnet-passing-parameters-in-button-click-handler

+0

リンクはもはや動作しません – madman2890

+0

私は通常の関数呼び出しが動作しない理由を理解していないと思います。私は空の引数を持つ関数を呼び出すことができます、私は関数を呼び出して変数を渡すことができますが、私は "myfunction(\" option1 \ ")" – JFA

5

.NETのさまざまなボタンコントロールには、OnCommandイベントとOnClickイベントがあります。 OnCommandイベントを使用する場合は、CommandNameCommandArgumentなどのボタンに適用できる追加のパラメータがあります。これらはCommandEventArgsでアクセスできます。

複数のボタンに同じメソッドを割り当てたい場所では、CommandNameCommandArgumentのパラメータを使用して、そのボタンをクリックするとどのような機能が生成されるかを示すのに便利です。

5

EventArgsクラスは基本クラスです。他のWebメソッドは他のEvent引数を使用します。

LinkBut​​tonには既定のEventArgsパラメーターを持つOnClickイベントがありますが、さらにいくつかの追加情報(CommandName & CommandArgument)を持つCommandEventArgs : EventArgsパラメーターを取るOnCommandイベントがあります。

イベント引数の基底クラスは、すべてのEventHandlerが同様のシグネチャに準拠するようにプレースホルダとして存在します。

関連する問題