我见过一些代码,其中人们通过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;
           }
}

来源: ASPNET-传递参数-在按钮点击处理程序

其他提示

.NET中的各种Button类型控件都有 OnCommand 事件以及 OnClick 事件。使用 OnCommand 事件时,您可以将其他参数应用于Button,例如 CommandName CommandArgument 。然后可以在 CommandEventArgs 中访问它们。

在您希望为多个按钮分配相同方法的位置并使用 CommandName CommandArgument 参数指示单击该按钮将产生的功能时,它非常有用。

EventArgs 类是基类。其他 Web 方法使用其他事件参数。

例如LinkBut​​ton 有一个带有默认 EventArgs 参数的 OnClick 事件,但它也有一个 OnCommand 事件,该事件采用 CommandEventArgs : EventArgs 参数有一些额外的信息(即 CommandName 和 CommandArgument)。

事件参数基类只是作为占位符,以便所有事件处理程序都符合类似的签名。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top