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

  • Thread starter Thread starter Dan
  • Start date Start date
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
 
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
 
Back
Top