Add control to asp:PlaceHolder on asp.net page from user control on same page

D

Dan

I have an asp.net page default.aspx with a user control and a placeholder
control.

<html>
<body>
<form id="myform" method="post" runat="server" />
<PageHeader:Header id="header1" runat="server" />
<asp:placeHolder ID="content" runat="server" />
</form>
</body>
</html>

In my user control I have 5 linkbuttons. I would like to have each of these
linkbuttons load a different user control into the placeholder on the
default.aspx page. Is this possible? If so how can I add my user controls
to the placeholder from another user control?

Thanks,

Dan
 
C

Christophe Gijbels

You've got different options. Just make sure you can modify the controls
collection of the placeholder control on the page. You can do this in
different ways. You can create a public property or method on the page
class, and by the Page property on your usercontrol, you can invoke the page
method or work with the property. You could also let your page class pass
the reference of the placeholder, or the placeholders control collection, to
a property on your usercontrol.

if you would use a method on the page class then you could do something like
this

default.aspx.cs

public void SetPlaceHolderControl (Control control) {
content.Controls.Clear();
content.Controls.Add(control);
}

in your header usercontrol put something like this in the eventhandler of
the linkbuttons

((default)Page).SetPlaceHolderControl(Page.LoadControl("OtherUserControl.asc
x"));

where default is the name of your page class

Christophe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top