asp.net:如何使用eventargs在按钮onclick上传递参数?
-
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中的各种Button类型控件都有 OnCommand
事件以及 OnClick
事件。使用 OnCommand
事件时,您可以将其他参数应用于Button,例如 CommandName
和 CommandArgument
。然后可以在 CommandEventArgs
中访问它们。
在您希望为多个按钮分配相同方法的位置并使用 CommandName
和 CommandArgument
参数指示单击该按钮将产生的功能时,它非常有用。
这 EventArgs
类是基类。其他 Web 方法使用其他事件参数。
例如LinkButton 有一个带有默认 EventArgs 参数的 OnClick 事件,但它也有一个 OnCommand 事件,该事件采用 CommandEventArgs : EventArgs
参数有一些额外的信息(即 CommandName 和 CommandArgument)。
事件参数基类只是作为占位符,以便所有事件处理程序都符合类似的签名。
不隶属于 StackOverflow