动态生成的按钮的Click事件并非每次都触发

时间:2018-09-25 12:14:06

标签: c# asp.net .net webforms

我有一个被调用的方法,该方法创建一个带有按钮的表。该方法-减去不必要的代码-像这样:

public void CreateButtonTable(_Default def, Table tblConfirmation)
{
    TableRow row = new TableRow();
    TableCell cell = new TableCell();

    Button btnConfirm = new Button();
    btnConfirm.Text = "Confirm";

    btnConfirm.Click += new EventHandler(def.btnConfirm_Click);

    cell.Controls.Add(btnConfirm);

    row.Cells.Add(cell);

    tblConfirmation.Rows.Add(row);
}  

我在两种情况下称这种方法。

如果请求具有特定的QueryString变量,则第一个位于Page_Load()方法中。

第二个是应用程序正常流程中的第二个。

仅当从Page_Load()方法(即第一种情况)调用CreateButtonTable方法时,单击按钮才会触发btnConfirm_Click方法。

我已经调试了这两种情况;正在创建表,正在创建按钮,正在设置click事件方法,并且看起来完全一样。但是在正常的应用程序流程中,不会触发btnConfirm_Click方法。

我在调试时注意到的一件事是,在第一种情况下,当我单击生成的按钮时,调试器会翻转回到设置Click事件的行上方(btnConfirm.Click += new EventHandler(def.btnConfirm_Click);),然后它返回首页并进入btnConfirm_Click方法。

但是在第二种情况下,它不会退回到CreateButtonTable方法。而是表消失了(或被清除了)。

我不知道问题出在哪里,并且被卡了一段时间。

0 个答案:

没有答案