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

标签 c# asp.net

我在 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/

相关文章:

c# - 如何将字段绑定(bind)到文本框

c# - 服务总线 2.6.6 配对命名空间启用 Siphon

c# - 聪明的算法找到数字总和等于数字显示中的段数的时间

asp.net - 从页面访问 HttpModule 的属性

asp.net - 如何将 ASP.NET 网站(或 Web 应用程序)嵌入到另一个网站中?

c# - 访问特定关键字的整个网址

c# - 关闭表单时如何关闭所有打开的 MessageBoxes

asp.net - 在MVC路由中使用 “async”(即使应该完成)也会使路由死锁;如何避免这种情况?

c# - 如何在 ASP.NET 中更改超链接的颜色

asp.net - 设置事件导航菜单项