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# 按钮不触发?

动态创建的按钮不触发 Click 事件

我已阅读并应用它们,但我无法解决问题。

我的动态按钮操作放在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;
    }
}
4

2 回答 2

2

当您在 web 表单中动态创建控件时,您需要在每次回发时再次动态地重新创建它们。

确保您了解 Web 表单页面的生命周期,并在预初始化阶段在事件触发之前重新注册控件。

于 2012-12-31T14:03:04.517 回答
0

要在 web 表单中创建动态按钮控件,请在您想要的按钮上赋予偏移值。

于 2013-02-01T18:16:59.480 回答