如何在动态asp按钮EventHandler上传递参数

时间:2013-09-30 10:24:56

标签: asp.net

美好的一天,我想将值传递给onclick按钮方法:

这是我动态创建的按钮:

string Code = //Some value
Button button = new Button();
button.ID = "Start";
button.Click +=new EventHandler(button_Click);
button.CommandArgument = Code;
Page.Controls.Add(button);

这是我的事件方法:

 void button_Click(object sender, EventArgs e)
 {
     string code = //Put the value in code 
 }

感谢。

2 个答案:

答案 0 :(得分:4)

一种广泛使用的方法是将这些值保存在服务器可访问的控件或变量中。

具体而言:

如果要从客户端传递动态值,请使用ASP:HiddenField,使用JavaScript设置其值并在服务器代码中访问

<asp:HiddenField runat="server" id="hfMyArgument" value="" />

您可以使用服务器端的值

void button_Click(object sender, EventArgs e)
{
     string code = hfMyArgument.value.trim();
}

创建按钮时创建并使用会话变量

Session["MyArgument"] = "argument value";
Session["MySecondArgument"] = 143523;

在服务器端代码C#

上使用这些值
void button_Click(object sender, EventArgs e)
{
     string code = Convert.toString(Session["MyArgument"]).trim();
}

答案 1 :(得分:1)

因为您使用了按钮的CommandArgument属性,所以您可以在此按钮的OnCommand事件中访问此属性。 [但不是OnClick]

因此,将OnCommand事件的事件处理程序定义为:

button.Command += new CommandEventHandler(button_Command); 

在您的事件处理程序中,访问CommandArgument

void button_Command(object sender, CommandEventArgs e)
 {
     string _code = e.CommandArgument.ToString();
 }