【发布时间】:2018-12-06 09:47:15
【问题描述】:
有人可以解释一下吗?我正在编写一个非常简单的 Web 表单(C# aspx),并且正在使用动态按钮。我创建了第一个按钮并向其添加了单击事件-没问题-一切正常。但是当我在我的第一个按钮的事件处理程序中创建第二个动态按钮时 - 我无法向它添加事件处理程序。我的意思是我可以 - 没有错误 - 但我永远无法达到它。
在下面的代码中 - 当我加载页面时 - 我看到一个按钮。我单击它 - 并添加了一个新按钮。我单击第二个按钮 - 它什么也没做。 (?)
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 ???
}
感谢您的建议 - 如果这是一个菜鸟问题,我们很抱歉 ;-)
【问题讨论】:
-
嗨@Michael,添加第二个按钮后,您能否在调试器中发布您的代码。
-
为什么需要动态创建它们?以声明方式创建它们并根据需要使它们可见/不可见。