我在 ASP.NET 中有一个页面,我正在将 WebControls.Button 的子类动态添加到预先存在的静态 TableCell 的 Controls
数据成员中。该按钮按预期在浏览器中正常显示。但是当我单击按钮时,我为 button.Click
添加的事件处理程序没有被调用。关于为什么会这样有什么建议吗?
var controls = this.displaytable.Rows[i].Cells[j].Controls;
var button = new TableButton(j, i);
button.Click += new EventHandler(this.button_Click);
button.UseSubmitBehavior = false;
button.Text = "Available";
controls.Add(button);
最佳答案
必须在每个请求上创建动态添加的按钮,很可能在引发回发事件(例如 OnLoad)之前就足够了。按钮有时需要有一个明确的 ID:
var controls = this.displaytable.Rows[i].Cells[j].Controls;
var button = new TableButton(j, i);
button.Click += new EventHandler(this.button_Click);
button.UseSubmitBehavior = false;
button.Text = "Available";
button.Id = string.Format("TableButton_{0}_{1}", j, i);
controls.Add(button);
这个 SO 答案可能会有一点帮助:ASP.NET dynamic Command Button event not firing .
关于c# - 无法在 ASP.NET 中添加编程控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5940800/