Solved

How can you have a MasterPage inherit a BasePage?

Posted on 2009-05-11
2
474 Views
Last Modified: 2013-11-07
Hi,

I'm fresh to .NET 2.0 (started today) so please be patient with me! :) .

I have a masterpage and have completed the layout.
I created a BasePage and have set some variables.
I have a content (default.aspx) page and its inheriting from the BasePage.

The content page can read the variables from the BasePage.
The MasterPage cannot read the values: "CS0103: The name 'config__path_js' does not exist in the current context".

How can I get the masterpage to inherit from BasePage? I've been looking on the net and apparently you can't but there must be a way to achieve this.

In general, I want to have one file that contains variables which is fed from an XML file.
I want to be able to access these variables from Masterpage, content pages and user controls.

How can I do this?
App_Code/BasePage.cs
~~~~~~~~~~~~~~~~~~~~
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
 
/// <summary>
/// This BasePage is used to have content pages inherit these variables
/// </summary>
public class BasePage : System.Web.UI.Page
{
 
    public String config__path_root;
    public String config__path_img;
    public String config__path_swf;
    public String config__path_flv;
    public String config__path_css;
    public String config__path_js;
    public String config__path_pdf;
 
    protected override void OnInit(EventArgs e)
   {
       XmlDocument doc = new XmlDocument();
       doc.Load(Server.MapPath("~/config.xml"));
       XmlNode root = doc.DocumentElement;
 
       config__path_root = root.SelectSingleNode("path_root").ChildNodes[0].Value;
       config__path_img = root.SelectSingleNode("path_img").ChildNodes[0].Value;
       config__path_swf = root.SelectSingleNode("path_swf").ChildNodes[0].Value;
       config__path_flv = root.SelectSingleNode("path_flv").ChildNodes[0].Value;
       config__path_css = root.SelectSingleNode("path_css").ChildNodes[0].Value;
       config__path_js = root.SelectSingleNode("path_js").ChildNodes[0].Value;
       config__path_pdf = root.SelectSingleNode("path_pdf").ChildNodes[0].Value;
   }
 
}
 
 
 
Default.aspx.cs
~~~~~~~~~~~~~
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
public partial class _Default : BasePage 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
    }
}
 
 
 
MasterPage.master.cs
~~~~~~~~~~~~~~~~~~
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
 
public partial class MasterPage : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
}

Open in new window

0
Comment
Question by:bloodtrain
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 12

Accepted Solution

by:
williamcampbell earned 500 total points
ID: 24356839
You don't have to inherit you could make the variables static

    public static String config__path_root;
    public static String config__path_img;

 
   Then access them

    BasePage.config__path_root;

  Also the usual way to store config variables is in web.config using ConfigurationManager

  Take a look at that it offers global access to config variables.
0
 
LVL 2

Author Comment

by:bloodtrain
ID: 24357943
Thanks williamcampbell for your reply. I didn't want to use the web.config because I need to use some programming logic as well when declaring the variables. This seems to work great so thanks a lot!
0

Featured Post

NEW Veeam Agent for Microsoft Windows

Backup and recover physical and cloud-based servers and workstations, as well as endpoint devices that belong to remote users. Avoid downtime and data loss quickly and easily for Windows-based physical or public cloud-based workloads!

Question has a verified solution.

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

In my previous two articles we discussed Binary Serialization (http://www.experts-exchange.com/A_4362.html) and XML Serialization (http://www.experts-exchange.com/A_4425.html). In this article we will try to know more about SOAP (Simple Object Acces…
This article is for Object-Oriented Programming (OOP) beginners. An Interface contains declarations of events, indexers, methods and/or properties. Any class which implements the Interface should provide the concrete implementation for each Inter…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…

617 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