bloodtrain
asked on
How can you have a MasterPage inherit a BasePage?
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?
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)
{
}
}
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER