以编程方式连接的事件没有解雇?

时间:2012-01-16 09:53:47

标签: c# asp.net events

我正在创建一个包含几个按钮的表格。这些按钮连接到触发更新特定数据库项的方法的事件。由于某些原因,事件没有正确连接。根本不执行应该执行的方法。我做错了什么

伪代码:

public void createTable(List<BLL> itemlist)
{ 
  //newtable;

  foreach (BLL item in itemlist)
  {
  //newrow; 
  //create multiple cells...

   TableCell cell = new TableCell();
   Button button = new Button();
   button.ID = "buttonname" + counter.ToString();
   button.Text = "Update";
   button.Click += new System.EventHandler(this.UpdateButton_Click);
   cell.Controls.Add(button);

  //addCellToTableRow
  }
  //addRowToTable
}

public void UpdateButton_Click(object sender, EventArgs e)
{
   //logic to get sender and update database.
   //debugger doesn't get to the breakpoint here.
}

1 个答案:

答案 0 :(得分:4)

您需要阅读ASP.NET page life cycle

当您创建动态控件时,您还需要在每个帖子上重新创建它们 - 最好在OnInit事件处理程序中完成。

如果您不这样做,则对象和任何附加事件不存在,因此事件不会触发它们。