C# 从动态按钮到动态按钮
谁能给我解释一下吗?我正在编写一个非常简单的web表单(C#aspx),并使用动态按钮。我创建了第一个按钮并添加了点击事件-没问题-一切正常。但是,当我在第一个按钮的事件处理程序中创建第二个动态按钮时,我无法向其中添加事件处理程序。我的意思是我可以——没有错误——但我永远无法达到它 在下面的代码中-当我加载页面时-我看到一个按钮。我点击它-一个新的按钮被添加。我点击第二个按钮,它什么也不做。(?)C# 从动态按钮到动态按钮,c#,asp.net,button,dynamic,C#,Asp.net,Button,Dynamic,谁能给我解释一下吗?我正在编写一个非常简单的web表单(C#aspx),并使用动态按钮。我创建了第一个按钮并添加了点击事件-没问题-一切正常。但是,当我在第一个按钮的事件处理程序中创建第二个动态按钮时,我无法向其中添加事件处理程序。我的意思是我可以——没有错误——但我永远无法达到它 在下面的代码中-当我加载页面时-我看到一个按钮。我点击它-一个新的按钮被添加。我点击第二个按钮,它什么也不做。(?) 谢谢你的建议——如果这是一个noob问题,我很抱歉;-) 所有控件和所有其他对象都将在页面生命周期
谢谢你的建议——如果这是一个noob问题,我很抱歉;-) 所有控件和所有其他对象都将在页面生命周期结束时处理。 这意味着您必须在回发时重新创建它们。您已经在为
页面加载
中的按钮按钮
执行此操作,但没有使用在第一个按钮的事件处理程序中创建的按钮b2
但真正的问题是:为什么需要动态创建它们?
以声明方式(在aspx标记上)创建它们,并根据需要使它们可见/不可见。Hi@Michael添加第二个按钮后,您能否在调试器中发布代码的外观。为什么需要动态创建它们?以声明方式创建它们,并根据需要使它们可见/不可见。这很有意义。。。至于我为什么要让它们充满活力——除了“我想用那种方式尝试”之外,没有别的理由。我将尝试动态控件的可见性-感谢您的建议;-)
protected void Page_Load(object sender, EventArgs e)
{
// on PageLoad I create a dynamic button named b1
Button b1 = new Button();
b1.Text = "new 1";
b1.Click += new EventHandler(b1_Click);
div_data.Controls.Add(b1);
// div_data is just a HTML div tag
}
void b1_Click(object sender, EventArgs e)
{
// when I click dynamid button b1 - a new dynamic button b2 is created
Button b2 = new Button();
b2.Text = "new 2";
b2.Click += new EventHandler(b2_Click);
div_data.Controls.Add(b2);
}
void b2_Click(object sender, EventArgs e)
{
//this code is never executed... why ???
}