views:

94

answers:

1

I'm trying to build a CompositeControl that's flexible. Depending on some of it's parameters, I would like my CompositeControl to load different user controls in it's CreateChildControls method. The exact UserControls aren't know at design time.

Just as a quick example, I tried with a "hard coded" UserControl and it failed:

protected override void CreateChildControls()
    {            
        Control UserControlControl = Page.LoadControl(typeof(MyUserControl), null);
        Controls.Add(UserControlControl);
        Label RegularControl = new Label();
        RegularControl.Text = "This gets displayed";
        Controls.Add(RegularControl);
    }

Is it possible to attain what I'm looking for?

Thanks

+1  A: 

Try the following:

protected override void CreateChildControls()
{            
            Control UserControlControl = Page.LoadControl("~/path/to/control.ascx");
            Controls.Add(UserControlControl);
}
Dan
Yup, that did it. This will do but I'd still be curious in learning how to use the other overload method with the type as argument.
Mr Grieves