asp.net:ボタンonclickでパラメータを渡すためにeventargsを使用する方法は?
-
06-07-2019 - |
質問
Web コントロールの commandParameter プロパティを介してパラメーターを渡すコードをいくつか見たことがあります。それでは、eventargs の使用方法は何ですか。
解決
これは、異なるボタンに同じ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;
}
}
他のヒント
.NETの各種ボタンタイプコントロールには、 OnCommand
イベントと OnClick
イベントがあります。 OnCommand
イベントを使用する場合、 CommandName
や CommandArgument
などの追加のパラメーターをボタンに適用できます。これらは、 CommandEventArgs
でアクセスできます。
同じメソッドを複数のボタンに割り当て、 CommandName
および CommandArgument
パラメーターを使用して、そのボタンをクリックすることでどの機能が生成されるかを示す場所で役立ちます。
の EventArgs
class は基本クラスです。他の Web メソッドは他のイベント引数を使用します。
例えばLinkButton には、デフォルトの EventArgs パラメーターを持つ OnClick イベントがありますが、 CommandEventArgs : EventArgs
パラメータには追加情報 (つまり CommandName と CommandArgument) が含まれています。
イベント args 基本クラスは、すべての EventHandler が同様のシグネチャに準拠するように、プレースホルダーとしてのみ存在します。