asp.net:如何在按钮onclick上使用eventargs进行参数传递?

Mad*_*hik 22 asp.net parameters button eventargs

我见过一些代码,人们通过web控件的commandParameter属性传递参数.然后使用eventargs是什么.

Jos*_*lio 51

如果您对不同的按钮使用相同的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" />
Run Code Online (Sandbox Code Playgroud)

您可以为两个按钮使用相同的事件处理程序,并根据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;
           }
}
Run Code Online (Sandbox Code Playgroud)

来源: aspnet-passing-parameters-in-button-click-handler


Rob*_*Day 6

.NET中的各种Button类型控件都有OnCommand事件和OnClick事件.使用该OnCommand事件时,您可以使用其他参数来应用于按钮,例如CommandNameCommandArgument.然后可以在中访问它们CommandEventArgs.

它适用于您希望将相同方法分配给多个按钮并使用CommandNameCommandArgument参数指示单击该按钮将产生哪些功能的位置.


Eoi*_*ell 5

EventArgs类是基础类.其他Web方法使用其他Event args.

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

事件args基类就是一个占位符,所以所有的EventHandler都符合类似的签名.