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

时间:2009-05-06 15:21:14

标签: asp.net parameters button eventargs

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

3 个答案:

答案 0 :(得分: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" />

您可以为两个按钮设置相同的事件处理程序,并根据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-passing-parameters-in-button-click-handler

答案 1 :(得分:6)

.NET中的各种Button类型控件都有OnCommand个事件以及OnClick个事件。使用OnCommand事件时,您可以将其他参数应用于按钮,例如CommandNameCommandArgument。然后可以在CommandEventArgs

中访问这些内容

在您希望将相同方法分配给多个按钮并使用CommandNameCommandArgument参数指示单击该按钮将产生哪些功能的地方非常有用。

答案 2 :(得分:5)

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

e.g。一个LinkBut​​ton有一个带有默认EventArgs参数的OnClick事件,但它也有一个OnCommand事件,它带有一个CommandEventArgs : EventArgs参数,该参数有一些额外的信息(即CommandName&amp; CommandArgument)。

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