我看过一些代码,其中人们通过 web 控件的 commandParameter 属性传递参数。那么 eventargs 的用途是什么。
问问题
64814 次
3 回答
53
如果您对不同的按钮使用相同的 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;
}
}
于 2009-05-06T15:29:11.287 回答
6
.NET 中的各种 Button 类型控件都有一个OnCommand
事件和一个OnClick
事件。使用OnCommand
事件时,您可以将其他参数应用于 Button,例如CommandName
和CommandArgument
。然后可以在CommandEventArgs
.
CommandName
在您希望将相同的方法分配给多个按钮并使用和CommandArgument
参数指示单击该按钮将产生什么功能的地方时,它很有用。
于 2009-05-06T15:28:59.837 回答
5
该类EventArgs
是一个基类。其他 Web 方法使用其他事件参数。
例如,LinkButton 有一个带有默认 EventArgs 参数的 OnClick 事件,但它也有一个 OnCommand 事件,该事件采用CommandEventArgs : EventArgs
具有一些额外信息的参数(即 CommandName 和 CommandArgument)。
事件 args 基类只是作为占位符存在,因此所有 EventHandler 都符合类似的签名。
于 2009-05-06T15:29:50.070 回答