【发布时间】:2010-07-21 08:14:08
【问题描述】:
我想创建一个用户控件,该控件将再次包含一个用户控件,该控件将动态生成并且可以针对数据表中存在的数据重复 N 次。
我该怎么做。
【问题讨论】:
标签: asp.net user-controls custom-controls
我想创建一个用户控件,该控件将再次包含一个用户控件,该控件将动态生成并且可以针对数据表中存在的数据重复 N 次。
我该怎么做。
【问题讨论】:
标签: asp.net user-controls custom-controls
您想使用TemplateControl.LoadControl(Page、UserControl 和 MasterPage 都继承自)。您需要在 Init 事件期间执行此操作才能使回发的内容正常工作。
void Page_Init(Object Sender, EventArgs e) {
var control = LoadControl("Awesome.ascx");
// ... Magic!
}
【讨论】:
在父用户控件上放置一个占位符控件:
<asp:PlaceHolder runat="server" id="phMainHolder" />
在 Page_Load 或 Page_Init 事件中,您只需在 for(each) 循环中实例化子用户控件并将它们添加到占位符中,例如:
for(int i = 0; i < 10; i++) {
ChildUC child = new ChildIC();
phMainHolder.Controls.Add(child);
}
这是最低限度的要求。当然,您可以选择在您的子控件上设置属性或其他内容。
ChildUC 类是此示例的虚构类名。使用 类,如果需要,使用命名空间作为定义它的额外名称,您想要使用的用户控件。
【讨论】: