C# 从动态按钮到动态按钮

C# 从动态按钮到动态按钮,c#,asp.net,button,dynamic,C#,Asp.net,Button,Dynamic,谁能给我解释一下吗?我正在编写一个非常简单的web表单(C#aspx),并使用动态按钮。我创建了第一个按钮并添加了点击事件-没问题-一切正常。但是,当我在第一个按钮的事件处理程序中创建第二个动态按钮时,我无法向其中添加事件处理程序。我的意思是我可以——没有错误——但我永远无法达到它 在下面的代码中-当我加载页面时-我看到一个按钮。我点击它-一个新的按钮被添加。我点击第二个按钮,它什么也不做。(?) 谢谢你的建议——如果这是一个noob问题,我很抱歉;-) 所有控件和所有其他对象都将在页面生命周期

谁能给我解释一下吗?我正在编写一个非常简单的web表单(C#aspx),并使用动态按钮。我创建了第一个按钮并添加了点击事件-没问题-一切正常。但是,当我在第一个按钮的事件处理程序中创建第二个动态按钮时,我无法向其中添加事件处理程序。我的意思是我可以——没有错误——但我永远无法达到它

在下面的代码中-当我加载页面时-我看到一个按钮。我点击它-一个新的按钮被添加。我点击第二个按钮,它什么也不做。(?)


谢谢你的建议——如果这是一个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 ???
}