我有一个被调用的方法,该方法创建一个带有按钮的表。该方法-减去不必要的代码-像这样:
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方法。而是表消失了(或被清除了)。
我不知道问题出在哪里,并且被卡了一段时间。