1

美好的一天,我想将值传递给 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 
 }

谢谢。

4

2 回答 2

5

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

具体来说:

如果要从客户端传递动态值,请使用 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();
}
于 2013-09-30T10:46:06.517 回答
1

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

因此,为OnCommandevent 定义一个事件处理程序:

button.Command += new CommandEventHandler(button_Command); 

并在您的事件处理程序中访问CommandArgumentas:

void button_Command(object sender, CommandEventArgs e)
 {
     string _code = e.CommandArgument.ToString();
 } 
于 2013-09-30T10:36:22.310 回答