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

use*_*114 1 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);
Run Code Online (Sandbox Code Playgroud)

这是我的事件方法:

 void button_Click(object sender, EventArgs e)
 {
     string code = //Put the value in code 
 }
Run Code Online (Sandbox Code Playgroud)

谢谢。

Tau*_*eef 5

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

具体来说:

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

<asp:HiddenField runat="server" id="hfMyArgument" value="" />
Run Code Online (Sandbox Code Playgroud)

您可以在服务器端使用该值

void button_Click(object sender, EventArgs e)
{
     string code = hfMyArgument.value.trim();
}
Run Code Online (Sandbox Code Playgroud)

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

Session["MyArgument"] = "argument value";
Session["MySecondArgument"] = 143523;
Run Code Online (Sandbox Code Playgroud)

在服务器端代码C#上使用这些值

void button_Click(object sender, EventArgs e)
{
     string code = Convert.toString(Session["MyArgument"]).trim();
}
Run Code Online (Sandbox Code Playgroud)