C# 将事件附加到动态创建的按钮单击
我想将事件附加到运行时生成的按钮。到目前为止,我已经编写了代码,但无法将按钮的ID传递给该方法。这是我的密码 此代码没有任何错误,另一个问题是单击事件后控件被冲走。如何预防C# 将事件附加到动态创建的按钮单击,c#,asp.net,event-handling,C#,Asp.net,Event Handling,我想将事件附加到运行时生成的按钮。到目前为止,我已经编写了代码,但无法将按钮的ID传递给该方法。这是我的密码 此代码没有任何错误,另一个问题是单击事件后控件被冲走。如何预防 protected void Button1_Click(object sender, EventArgs e) { int i = int.Parse(TextBox1.Text); for (int x = 1; x <= i; x++) { Button b =
protected void Button1_Click(object sender, EventArgs e)
{
int i = int.Parse(TextBox1.Text);
for (int x = 1; x <= i; x++)
{
Button b = new Button();
b.ID = "btn_" + x.ToString();
b.Text = "btn_" + x.ToString();
b.Click += new System.EventHandler(myEventHandler);
pnlHolder.Controls.Add(b);
}
}
private void myEventHandler(object sender, EventArgs e)
{
txtMain.Text = sender.ToString(); // I want to know which button was pressed
}
受保护的无效按钮1\u单击(对象发送者,事件参数e)
{
int i=int.Parse(TextBox1.Text);
对于(intx=1;xtry
或
试试看
或
试试这个
private void myEventHandler(object sender, EventArgs e)
{
Button b = (Button) sender;
txtMain.Text = b.ID;
//
txtMain.Text = b.Text;
if(b.ID == "button1")
doThis();
else if(b.ID == "button2")
doThat();
}
试试这个
private void myEventHandler(object sender, EventArgs e)
{
Button b = (Button) sender;
txtMain.Text = b.ID;
//
txtMain.Text = b.Text;
if(b.ID == "button1")
doThis();
else if(b.ID == "button2")
doThat();
}
发件人作为按钮非常喜欢它(:+1发件人作为按钮非常喜欢它(:+1谢谢,+1,顺便说一句,您能帮我解决另一个问题吗?[回发后删除控件]Asp.net不像窗口窗体。控件状态在回发时丢失。这就是为什么Asp.net使用ViewState来记住您通过设计或标记添加的控件。您需要将按钮作为ViewState的一部分,或者在每次页面刷新时重新创建它们。谢谢,+1,顺便问一下,您能帮我解决另一个问题吗?[回发后删除的控件]Asp.net与窗口窗体不同。回发时控件状态会丢失。这就是Asp.net使用ViewState来记住通过设计或标记添加的控件的原因。您需要将按钮作为ViewState的一部分,或者在每次页面刷新时重新创建它们
private void myEventHandler(object sender, EventArgs e)
{
Button b = (Button) sender;
txtMain.Text = b.ID;
//
txtMain.Text = b.Text;
if(b.ID == "button1")
doThis();
else if(b.ID == "button2")
doThat();
}