Load user control dynamically

I have a master page and a user control. User Control is resgistered on xyz.aspx page. URL rewriting loads xyz.aspx page which in turn loads the UC which shows up on the page/masterpage.

UC builds a side menu.
I added 2 links to my master page. When clicking..i want to call the routine inside the usercontrol to refresh the side menu. Anyway to do this??
LVL 7
CamilliaAsked:
Who is Participating?
 
RishadanPortConnect With a Mentor Commented:
First I want to say that I do not know much about "aspx"

I do however have a lot of experience with C# UserControls.

In C# I would simply wrap a routine in a class that inherits a UserControl, and modify the designing like I want it. Here is an example of a class UserControl

public class XYZ_ASPX_PAGE : UserControl
{
   public XYZ_ASPX_PAGE(){
      InitializeComponent();
   }

   public void refreshSideMenu(){
      ....
   }
}


Outside this class I would simply do something like this:

XYZ_ASPX_PAGE page = new XYZ_ASPX_PAGE();

and to add the page to my Main Page, I would do this:

this.masterPage.Controls.Add(page);


I hope this helps
0
 
RishadanPortCommented:
Oh and, once you do this, you can simply do:

this.XYZ_ASPX_PAGE.refreshSideMenu();

to refresh the Side Menu
0
 
CamilliaAuthor Commented:
No, doesnt make sense to me.

1.I have the linkbuttons on a Masterpage:
public partial class MasterPages_Universal : System.Web.UI.MasterPage

So i cant inherit from the UserControl

2. That "refreshsidemenu" is supposed to be in the userContol..right?

3. I did this in click event of the linkbuttons:
   Control FeaturedProductUserControl = LoadControl("~/Controls/ProductFilter.ascx");
  Controls.Add(FeaturedProductUserControl);

This calls my userControl but it doesnt call the "refreshsidemenu"  routine. Anyway to do that?

4. Do you know how I can refresh the entire page when the linkbutton is clicked (maybe this would be easier than loading ONE usercontrol..load the entire page instead of one user control)
0
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
RishadanPortCommented:
I see what your saying now, MasterPage's Control property can not add in System.Windows.Forms.UserControls... What it does add in is Web.UI.Control. Let me research this topic for a while
0
 
CamilliaAuthor Commented:
there has to be somehow dynamically calling this:

I made the UC rotuine public..i tried this:
 Control FeaturedProductUserControl = LoadControl("~/Controls/ProductFilter.ascx");
            Controls.Add(FeaturedProductUserControl);
  FeaturedProductUserControl.<i dont see the rotuine here>

*** I thought about reloading the entire page but there are so many user controls and pieces to this and they're all separate...
0
 
RishadanPortCommented:
Well you can't see the routine since you are dealing with the Object Control.

You need to type cast it to a higher level object in order to see the routines
0
 
CamilliaAuthor Commented:
not sure what you mean...can u give an example...

Also...can this be done with event handeling...do i need an event handler???
0
 
RishadanPortCommented:
What my book says on this is the following:

1. You need to create a wrapper class that inherits System.Web.UI.Control
-->Here you provide properties, methods, and events.
2. You need to Override the Renderer Method
-->"Each control must implement this method to generate the HTML that represents the control to the browser. Note that the render method is not called directly; instead, a call is made to RenderControl, which then invokes Render. For controls that contain child controls, the RenderChildren method is available."
3. Use HtmlTextWriter object to generate the HTML Code


I am not sure if this helps you... Sorry I am trying my best
0
 
RishadanPortCommented:
Here is the example that my book uses:
//(1) In herit from the System.Web.UI.Control Class
public class CompanyLogo : System.Web.UI
{
   ... List properties and methods here ...
 
   //(2) Override the Render Method
   protected override void Render(HtmlTextWriter output)
   {
      //(3) Use the HtmlTextWriter to emit html to the browser
   }
}

Open in new window

0
 
CamilliaAuthor Commented:
let me see, thanks .
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.