【问题标题】:Dynamically add Control on server-side Event在服务器端事件上动态添加控件
【发布时间】:2011-10-09 06:25:55
【问题描述】:
我想在用户单击按钮(服务器端事件)时添加用户控件。
我可以动态添加控件,但由于页面生命周期太晚了,该用户控件上的事件不会触发(在这种特定情况下,该用户控件中的按钮)。
我看到的所有解决方案都是在 Page_Init(或 Page_Load)上添加我在这里无法做到的控件,而且控件必须保持“动态”,所以我不能只是隐藏它然后制作可见。
【问题讨论】:
标签:
asp.net
user-controls
event-handling
dynamic
【解决方案1】:
这里的问题是这些控件的 ID 是自动生成的,而 asp.net 通过 ID 匹配控件的事件。
我通过在创建每个动态控件后为其提供 ID 来解决此问题。
Control control = LoadControl("~/Controls/" + controlName + ".ascx");
control.ID = "SomeId";
parentElement.Controls.Add(control);