Accessing Master Page Custom Properties in Design Mode

G

Guest

Is there any way to access the custom properties of a master page from the
aspx form?

I know the custom properties of a master page can be accessed from the
aspx.cs partial class by specifying the MasterType directive on the aspx form.

My master page will render a custom navigation menu and I'd like to put in
the properties of which tab and sub tab to load and other misc style info in
the aspx form that can be used by master page.

Thanks in advance,
Suresh.
 
S

Siva M

Cast the return value of Page.Master to your specific master page type and
set/get its properties.

Is there any way to access the custom properties of a master page from the
aspx form?

I know the custom properties of a master page can be accessed from the
aspx.cs partial class by specifying the MasterType directive on the aspx
form.

My master page will render a custom navigation menu and I'd like to put in
the properties of which tab and sub tab to load and other misc style info in
the aspx form that can be used by master page.

Thanks in advance,
Suresh.
 
G

Guest

Figured it out!! (Using a different approach)

First of all there doesn't seem to be a way to specify the custom properties
of a master page in the aspx form.

But I can add custom attributes to the Page directive by using a base page
class that my web forms can inherit. I can put my custom properties in my
base page and set them on the aspx form in design mode. This is only
possible if I set the CodeFileBaseClass of Page in the aspx form to my base
page class.

Then from my master page I'm able to interrogate this properties.

However, I'm not sure if this is the best solution.

Example below:

1. BasePage

public class BasePage : System.Web.UI.Page
{
private string _Header;

public string Header
{
get { return _Header; }
set { _Header = value; }
}

public BasePage() { }
}

2. Page directive on my aspx form (Note: Header and CodeFileBaseClass
settings)

<%@ Page Language="C#" MasterPageFile="~/App_Master/Main.master"
CodeFileBaseClass="BasePage" Header="This is a Test!" AutoEventWireup="true"
CodeFile="SamplePage.aspx.cs" Inherits="App_Pages_SamplePage" Title="Sample
Page" %>

3. Master Page

public partial class App_Master_Main : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page is BasePage)
{
BasePage p = (BasePage)this.Page;
ltlFormHeader.Text = p.Header;
}
}
}

If anyone is interested in this and can actually follow what I'm doing and
realize that this is bad... Please let me know a better way.

Thanks,
Suresh.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top