开发者

How to dynamically add user controls within a user control

I want to create a user control that will again contain a user control that will be dynam开发者_如何学运维ically generated and can be repeated N times with respect to data present in data table.

How can i do this.


You want to use TemplateControl.LoadControl (which both Page, UserControl and MasterPage inherit from). You need to do this during the Init event for postback stuff to work.

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


Place a placeholder control on the parent user control:

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

In the Page_Load or Page_Init event you simply instantiate the child user controls in a for(each) loop and add them to the placeholder like for example:

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

This is the bare minimum to do it. You can opt to set properties or whatever on your child controls of course.

The class ChildUC is a fictive class name for this example. Use the class, and if needed use the namespace as extra in which it is defined, of the user control you want to use.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜