如何在用户控件中动态添加用户控件

时间:2010-07-21 08:14:09

标签: asp.net user-controls custom-controls

我想创建一个用户控件,它将再次包含一个动态生成的用户控件,并且可以相对于数据表中的数据重复N次。

我该怎么做。

2 个答案:

答案 0 :(得分:1)

您想要使用TemplateControl.LoadControl(页面,用户控制和母版页都从中继承)。你需要在Init事件期间执行此操作,以便回发工作。

void Page_Init(Object Sender, EventArgs e) {
    var control = LoadControl("Awesome.ascx");
    // ... Magic!
}

答案 1 :(得分:0)

在父用户控件上放置一个占位符控件:

<asp:PlaceHolder runat="server" id="phMainHolder" />

在Page_Load或Page_Init事件中,您只需在for(每个)循环中实例化子用户控件,并将它们添加到占位符,例如:

for(int i = 0; i < 10; i++) {
    ChildUC child = new ChildIC();
    phMainHolder.Controls.Add(child);
}

这是最低限度的。您当然可以选择在子控件上设置属性或其他内容。

类ChildUC是此示例的虚构类名。使用,如果需要,可以使用命名空间作为您要使用的用户控件的额外命名空间。