Solved

Load user control dynamically

Posted on 2008-10-02
10
1,088 Views
Last Modified: 2012-05-05
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??
0
Comment
Question by:Camillia
  • 6
  • 4
10 Comments
 
LVL 6

Accepted Solution

by:
RishadanPort earned 500 total points
ID: 22628132
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
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22628153
Oh and, once you do this, you can simply do:

this.XYZ_ASPX_PAGE.refreshSideMenu();

to refresh the Side Menu
0
 
LVL 7

Author Comment

by:Camillia
ID: 22628327
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
Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

 
LVL 6

Expert Comment

by:RishadanPort
ID: 22628444
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
 
LVL 7

Author Comment

by:Camillia
ID: 22628496
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
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22628513
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
 
LVL 7

Author Comment

by:Camillia
ID: 22628530
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
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22628617
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
 
LVL 6

Expert Comment

by:RishadanPort
ID: 22628679
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
 
LVL 7

Author Comment

by:Camillia
ID: 22629578
let me see, thanks .
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question