无法在 ASP.NET 中添加编程控件

本文关键字:添加 编程 控件 NET ASP | 更新日期: 2023-09-27 17:55:55

我在 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);

无法在 ASP.NET 中添加编程控件

必须在每个请求上创建动态添加的按钮,很可能在引发回发事件(例如 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 动态命令按钮事件未触发。