动态Asp.net按钮没有被解雇

时间:2012-12-31 13:48:54

标签: c# asp.net .net c#-4.0

在我的程序中,我使用了一个带有以下代码的动态按钮:

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)
{
    //..
}

有几种解决方案:

C# Button Not Firing?

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;
    }
}

2 个答案:

答案 0 :(得分:2)

在webforms中动态创建控件时,需要在每次回发时动态重新创建它们。

确保您了解webforms页面的生命周期,并在事件触发之前,在pre-init阶段重新注册控件。

答案 1 :(得分:0)

要在网络表单中创建动态按钮控件,请将偏移值设置为您想要的按钮。