在服务器端事件上动态添加Control

时间:2011-07-20 10:08:34

标签: asp.net user-controls event-handling dynamic

我想在用户点击按钮(服务器端事件)时添加用户控件 我能够动态添加控件但由于在页面生命周期中为时已晚,因此该用户控件上的事件不会触发(在此特定情况下,该用户控件中的按钮)。

我见过的关于这个的所有解决方案都是在Page_Init(或Page_Load)上添加一些我在这里无法做到的控件,控件也必须保持“动态”,这样我就不能隐藏它然后制作它可见。

1 个答案:

答案 0 :(得分:0)

这里的问题是这样的控件的ID是自动生成的,而asp.net通过ID匹配控件的事件。

我通过在每个动态控件创建后为每个动态控件提供一个ID来修复此问题。

Control control = LoadControl("~/Controls/" + controlName + ".ascx");
control.ID = "SomeId";
parentElement.Controls.Add(control);