0

I want to create a user control that will again contain a user control that will be dynamically generated and can be repeated N times with respect to data present in data table.

How can i do this.

2 Answers 2

1

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!
}
Sign up to request clarification or add additional context in comments.

Comments

0

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.

2 Comments

@Xlll: the problem here is that i m not able to get ChildIc() available over my parent control. Am i missing something ?
One thing to make sure here is that you need to generate the controls on every page post back other wise(meaning don't put the condition !Page.IsPostBack when you are generating controls dynamically).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.