Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Can a aspx page pass a parameter to a master page?

Posted on 2008-10-08
9
Medium Priority
?
2,001 Views
Last Modified: 2010-09-13
Hello,
I would like pages that use my Master page to be able to tell the master page whether to load the wide or normal style. Based on this I will show/hide different controls and CSS files.

So can an aspx page pass a parameter to its master page?
Or does it load too late in the page cycle?
private bool isWide;
 
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    public bool IsWide
    {
        get { return isWide; }
        set { isWide = value; }
    }

Open in new window

0
Comment
Question by:uswebpro9
  • 5
  • 3
9 Comments
 

Author Comment

by:uswebpro9
ID: 22667404
Hello,
I'm aware that you can register & show/hide controls and css files in the aspx pages. However I do not want to have a ton of redundant code.
0
 
LVL 26

Expert Comment

by:Anurag Thakur
ID: 22667634
i dont know about passing parameters but you definitely can access the content pages controls on the master page
the follwoing link provides u the sample for that
http://www.velocityreviews.com/forums/t114087-access-content-page-controls-from-within-the-master-page.html
0
 
LVL 14

Expert Comment

by:Ramuncikas
ID: 22667694
Hi.

Yes you can

First thing to do is to declare a of what type you MasterPage is. To do so you have to add MasterType declaration right after Page declaration in your content aspx file, like:
<%@ Page ... %>
<%@ MasterType TypeName="MyNamespace.MyMasterPage" %>

Second thing to do is to define a public property on master page (IsWide in your case)

Third thing is to set this property from content page in Page_Load event, like:
this.Master.IsWide = true;

At this point it should be Master page's responsability to load needed controls and styles.

HTH
R
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:uswebpro9
ID: 22667697
Right, as I mentioned above. There would be a lot of redundant code if I start accessing the controls on the master page. currently I'm doing this, however it's starting to get messy because I have the same code on 50+ pages now.

It would be cleanest to say this.MasterPage.IsWide = true;

And on the masterPage PageLoad do all the special stuff.

Can I do this some how?
0
 
LVL 14

Expert Comment

by:Ramuncikas
ID: 22667777
I don't know who you just replied to but if you have no luck with my suggestion just please tell.

R
0
 

Author Comment

by:uswebpro9
ID: 22667898
Hey,
The comment above was to ragi0017
Ramuncikas - Thanks! I will try this now.

It might be tricky because I have 5 different masterpages.

In the Global.asax file I set the masterpage and themes based on a setting from a resource file.

0
 

Author Comment

by:uswebpro9
ID: 22667919
Hello Ramuncikas ,
1 question about how to set:
<%@ MasterType TypeName="MyNamespace.MyMasterPage" %>

The master pages has this on the top:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="TechSeminar.master.cs" Inherits="MasterPages_TechSeminar" %>

What do I put for TypeName?
I would prefer to establish this on the aspx.cs code behind page. Can this be done?


thanks!
0
 
LVL 14

Accepted Solution

by:
Ramuncikas earned 2000 total points
ID: 22667988
<%@ MasterType TypeName="MasterPages_TechSeminar" %>

Well, actually MasterType declaration is not mandatory. Sure you can always use codebehind.
If you don't set MasterType declaration then in codebehind of your content page you should do something like this:

MasterPages_TechSeminar master = (MasterPages_TechSeminar)this.Master;
master.IsWide = true;

MasterType declaration just ensures that page's Master property returns correct/desired type of master page. If you don't put MasterType declaration then you have to do the above manual type conversion to access you property.

R

0
 

Author Comment

by:uswebpro9
ID: 22671367
Bingo, it worked.

So, an aspx page can send a parameter to it's masterpage.

In this case the parameter hides some user controls.

thanks Ramuncikas!
aspx page:
 
ASP.FrontMasterPage master = (ASP.FrontMasterPage)this.Master;
        master.IsWide = true;
 
 
masterpage cb:
 
public partial class FrontMasterPage : System.Web.UI.MasterPage
{
 
    private bool isWide;
 
    protected void Page_Load(object sender, EventArgs e)
    {
        if (isWide)
        {
            headControl1.Visible = false;
        }
    }
 
    public bool IsWide
    {
        get { return isWide; }
        set { isWide = value; }
    }
   
}

Open in new window

0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

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

Question has a verified solution.

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

Introduction This article shows how to use the open source plupload control to upload multiple images. The images are resized on the client side before uploading and the upload is done in chunks. Background I had to provide a way for user…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …
Suggested Courses

916 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