Click here to Skip to main content
Click here to Skip to main content

Adding attributes to the <body> tag when using Master Pages

By , 30 Jul 2007
 

Problem

If you are using Master Pages in an ASP.NET application and you need to add an attribute to the <BODY> tag from a Content Page -- for instance, to set a client script function for the onload event of the page -- you will find that you can't do it directly because the <BODY> tag is in the Master Page, not in your Content Page.

Solution

Make the <BODY> tag on the Master Page a public property, so you can access it from any Content Page. First, promote the <BODY> tag in the Master Page to an ASP.NET server control. Change:

<BODY>

to:

<BODY id="MasterPageBodyTag" runat="server">

Now that the body tag is a server control, you can configure access to it as a public property in the Master Page code behind file:

using System.Web.UI.HtmlControls;
public partial class MyMasterPage : System.Web.UI.MasterPage
{
    public HtmlGenericControl BodyTag
    {
        get
        {
            return MasterPageBodyTag;
        }
        set
        {
            MasterPageBodyTag = value;
        }
    }
...

Note that the MasterPageBodyTag server control is of type System.Web.UI.HtmlControls.HtmlGenericControl. To demonstrate this, just set a breakpoint in the Page_Load function in the code behind file, run the ASP.NET project in debug mode to that point, and execute ?MasterPageBodyTag.GetType().ToString() in the Immediate Window. To use this property from a Content Page, first declare the type of your Master Page in your Content Page's ASPX file:

<%@ MasterType TypeName="MyMasterPage" %>

Then somewhere in your Content Page's code behind file, use the Master Page's BodyTag property to add an attribute to the <BODY> tag:

protected void Page_Load(object sender, EventArgs e)
{
    Master.BodyTag.Attributes.Add("onload", "SayHello()");
...

This example, of course, assumes that there is a SayHello() client script in this Content Page. Running the application to the Content Page and then viewing the source code in the browser will show that the onload="SayHello()" attribute was added to the <BODY> tag. This technique should work for any HTML tag in the Master Page that you wish to access from a Content Page.

History

  • 28 June, 2007 -- Original version posted
  • 30 June, 2007 -- Article moved to main CodeProject.com article base
  • 30 July, 2007 -- Article edited

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Chuck Bevitt
United States United States
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralTip: If you get error "Could not load type 'MyType'membernaughton21 Mar '11 - 5:43 
GeneralRe: Tip: If you get error "Could not load type 'MyType'memberhamedfilm10 Feb '12 - 23:09 
GeneralRe: Tip: If you get error "Could not load type 'MyType'memberhamedfilm10 Feb '12 - 23:10 
GeneralMy simple solution to thismemberRattlehunter10 Nov '09 - 8:29 
Generalperfectmemberev cabrera5 Jun '08 - 6:35 
GeneralHelp...memberAD3428 Apr '08 - 10:41 
GeneralI dont get this...memberMember 385187925 Mar '08 - 20:34 
GeneralA more simple waymemberjustin.moses21 Aug '07 - 9:38 
GeneralRe: A more simple waymemberpsychrometrics28 Sep '07 - 3:36 
QuestionRe: A more simple waymemberjustin.moses28 Sep '07 - 4:11 
AnswerRe: A more simple waymemberpsychrometrics1 Oct '07 - 7:26 
GeneralRe: A more simple waymembermln693715 Feb '08 - 22:38 
GeneralGood jobmemberCoolBreeze8127 Aug '07 - 16:01 
QuestionWhat about Master page body attributes ???memberCWinKY7 Aug '07 - 5:20 
Questionuser control accessmemberKamagurka6 Aug '07 - 18:12 
GeneralGreat, but questionmemberJamie Nordmeyer30 Jul '07 - 5:25 
QuestionHELP I had this problem few days ago and abandoned this solution....memberKarmasAgent17 Jul '07 - 20:19 
Questionaccess from ControlmemberOmidH17 Jul '07 - 18:58 
Generalgood!!membernikhilmittal16 Jul '07 - 0:49 
Generalgood job!memberyork zhang14 Jul '07 - 23:29 
GeneralGood thinkingmemberAdam Tibi6 Jul '07 - 5:32 
QuestionWhy would you want to do this?memberKevnz1 Jul '07 - 17:53 
AnswerRe: Why would you want to do this?memberChuck Bevitt2 Jul '07 - 13:03 
GeneralRe: Why would you want to do this?memberDavide Icardi2 Jul '07 - 14:08 
GeneralRe: Why would you want to do this?membershroomy16 Oct '07 - 7:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130516.1 | Last Updated 30 Jul 2007
Article Copyright 2007 by Chuck Bevitt
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid