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

Asp.net 如何在动态asp按钮EventHandler上传递参数,asp.net,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(o

你好,我想向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 
 }

谢谢。

由于您正在使用按钮的
命令参数
属性,因此您可以在该按钮的
命令
事件中访问此属性。[但不是在OnClick中]

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

button.Command += new CommandEventHandler(button_Command); 
并在事件处理程序中访问
命令参数
,如下所示:

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

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

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

button.Command += new CommandEventHandler(button_Command); 
并在事件处理程序中访问
命令参数
,如下所示:

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

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

具体而言:

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

<asp:HiddenField runat="server" id="hfMyArgument" value="" />
创建按钮时创建并使用会话变量

Session["MyArgument"] = "argument value";
Session["MySecondArgument"] = 143523;
要在服务器端代码C上使用这些值#


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

具体而言:

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

<asp:HiddenField runat="server" id="hfMyArgument" value="" />
创建按钮时创建并使用会话变量

Session["MyArgument"] = "argument value";
Session["MySecondArgument"] = 143523;
要在服务器端代码C上使用这些值#


我尝试过这个方法,但当我单击它发回的按钮时,页面被刷新,事件不会被触发。请确保每次发回时都创建控件。创建控件的代码不应在(!IsPostBack)条件内。回发将会发生。你想避免吗?我试过了,但当我单击按钮它发回时,页面被刷新,事件不会被触发。请确保每次发回时都创建控件。创建控件的代码不应在(!IsPostBack)条件内。回发将会发生。你想避免吗?我很高兴,谢谢你给我的答案打分。如果您不需要从客户端获取参数,并且需要使用全局变量之类的东西,那么会话是一种更好的方法,因为您不需要更改asp代码来添加隐藏字段。我很高兴,感谢您将我的答案标记为有帮助。如果您不需要从客户端获取参数,并且需要使用全局变量之类的东西,那么session是一种更好的方法,因为您不需要更改asp代码来添加隐藏字段。