web-dev-qa-db-ja.com

asp.net:ボタンonclickに渡すパラメーターにeventargsを使用するには?

webコントロールのcommandParameterプロパティを介してパラメーターを渡すいくつかのコードを見たことがあります。

22
Maddy.Shik

これは、異なるボタンに同じ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

52
Jose Basilio

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

同じメソッドを複数のボタンに割り当て、CommandNameおよびCommandArgumentパラメーターを使用して、そのボタンをクリックするとどの機能が生成されるかを示す場合に便利です。

6
Robin Day

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

例えばLinkBut​​tonには、デフォルトのEventArgsパラメータを持つOnClickイベントがありますが、いくつかの追加情報(つまり、CommandNameとCommandArgument)を持つCommandEventArgs : EventArgsパラメータを取るOnCommandイベントもあります。

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

5
Eoin Campbell