在我的程序中,我使用了一个带有以下代码的动态按钮:
Button button = new Button();
button.ID = counter.ToString();
button.Text = "ok";
button.Click += new EventHandler(this.ButtonClick);
list.Controls.Add(button);
我添加了点击事件的代码,如下所示:
private void ButtonClick(object sender, EventArgs e)
{
//..
}
有几种解决方案:
Dynamically created button not firing Click event
我已阅读并应用它们,但我无法解决问题。
我的动态按钮操作位于Page_Load
。 (我在Page_Init
尝试了它并且没有再次被解雇。)
为了调试我使用断点。我把它放到Page_Load
,第一次页面工作,程序停在断点处,然后我继续..单击动态按钮后,代码没有被触发......
我的Page_Load
如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//..
case "button":
Button button = new Button();
button.ID = counter.ToString();
button.Text = "ok";
button.Click += new EventHandler(this.ButtonClick);
list.Controls.Add(button);
break;
}
}
答案 0 :(得分:2)
在webforms中动态创建控件时,需要在每次回发时动态重新创建它们。
确保您了解webforms页面的生命周期,并在事件触发之前,在pre-init阶段重新注册控件。
答案 1 :(得分:0)
要在网络表单中创建动态按钮控件,请将偏移值设置为您想要的按钮。