SharePoint 2010: Master Page

SharePoint 2010: Master Page

Masterpage provides layouts for set of pages. Master Pages are a template that other pages can inherit from to keep consistent functionality. The pages that inherit from Master Pages are referred to as content pages.

In SharePoint, when we add a new page from browser by going to Site Actions and select Create Page then there we will select the page layout and create the page. So we are selecting the page layout, it’s always binds to a master page. Whenever you change the default or custom master page, then the changes will be applied to all the page layouts by default. Because SharePoint won’t give direct master page URL or name anywhere. It will be ~masterurl/custom.master for custom master page and ~masterurl/default.master for the default master page.

Only one gallery exists per site collection and it is automatically populated when a new site collection is provisioned. Master pages cannot be shared across site collections, but a root site can share its master pages with the other sites in its site collection.
Note: Master Page directive at the top of the page: <%@Master language=”C#”%>

Content pages are the ASP.NET pages that implement a Master Page. Content pages are normal ASP.NET pages that contain an attribute which informs the compiler that the page should be merged with a Master Page. This attribute is part of the page directive tag and is called the MasterPageFile

What all are content placeholders in master pages?

Master page in SharePoint contains Content PlaceHolders. Content placeholders are areas of replaceable content on the master page. The tag is <asp:ContentPlaceHolder>. A master page may define many ContentPlaceHolder controls; a page does not have to implement a corresponding content control. There are contentplaceholders like PlaceHolderMain, which displays the main body of the page. PlaceHolderLeftNavBar, which contains the Quick Launch bar on the left side of the page, PlaceHolderTopNavBar, which contains the Top Navigation tabs at the top of the page, and PlaceHolderSearchArea, which contains the page’s search controls.

Total count: 33
Visual reference to above mentioned Content Place Holders are
How to properly hide Content Placeholders in your SharePoint Masterpage?

Move the place holders which are not to show in asp panel and set the attribute visible to false.

SharePoint master pages have their own list/library called the Master Page Gallery .To access a SharePoint master page gallery goes to a SharePoint site collectionà site settings à master page gallery.

There are 3 main types of Master Pages in SharePoint
  • Site Master Pages
  • System Master Pages
  • Application Master Pages
Site Master Pages are usually used in SharePoint publishing site definitions. These pages are used for the main .This is needed for publishing pages because the main page, of a site or sub site, usually has the publishing feature turned.
Site master pages are defined by ~masterurl/custom.master in the content page declaration.
System master pages are used for most non-publishing sites and subpages (list or library) in publishing sites.
System master pages are defined by ~masterurl/default.master in the content page declaration.
Application master pages are for all “Layout” pages. Layout pages are SharePoint administrative pages.

  • v4.master - This is default master page
  • Default. Master - this is used to support the 2007 user interface
  • Minimal. Master
  • Simple. Master- it is used for accessdenied.aspx, confirmation.aspx, error.aspx, login.aspx, reqacc.aspx, signout.aspx & webdeleted.aspx pages
V4.master:  Default master page for most non-publishing sites in SharePoint 2010. It is also the default system master page in both SharePoint Foundation and SharePoint Server.
Default.master: Helpful from upgrading MOSS 2007 sites to SharePoint 2010 sites.
Minimal.master: page is best suited for pages with minimal branding and navigation. The minimal.master is used with search pages and Office web applications.
Simple.master: Master page used for error and login pages. It lives in the fi le system and is not available in the master page gallery.
MWSDefaultv4.master: Found in the master page gallery of meeting workspace sites.
Nightandday.master: page contains controls specialized for publishing web content management.

V4.master: Default team site master page. Provides ribbon bar and other UI changes.
  • Site actions are updated for 2010 and appear on left.
  • Ribbon bar is available
Default.master: Sites upgraded from SharePoint 2007 use this unless they are changed to use a v4 version.
  • Site actions on right side and are same as SharePoint 2007 version
  • No ribbon bar
What is Page Layout?

Page layout dictates the overall look and feel of a web page. A page layout relies on a content type to determine the kind of content that can be stored on pages. Page layout contains field controls and web part.

Master pages and page layouts dictate the overall look and feel of your SharePoint site.
Differences are
Master pages contain controls that are shared across multiple page layouts, such as navigation, search, or language-preference for multilingual sites. Page layouts contain field controls and Web Parts
Page layouts can be used by all page instances that are based on that page layout. Master pages can be used by all page instances in a site.

Site navigation provides the primary interface for site users to move around on the sites and pages on the site. 

  1. Navigation controls on master pages
    1. Top link bar navigation
    2. Quick Launch navigation
    3. Breadcrumb navigation
    4. Tree view navigation
    5. Metadata navigation
  2. Navigation controls on page layouts
    1. Summary Links
    2. Table of Contents
    3. Content Query
  3. Navigation Web Parts
    1. Categories
    2. Site Aggregator
    3. Site in Category
    4. Tag Cloud
Ribbon Interface act as the UI enhancement in the product. It provides the commands to be executed in the form of Icons and tabs.

Select Empty Sharepoint template as a project template and select the module item for master page and css.
<Module Name="CustomMaster" Url="_catalogs/masterpage">  <File Path="CustomMaster\custommaster.master" Url="custommaster.master" Type="GhostableInLibrary" />
"Url="_catalogs/masterpage"" means this will be deployed to the master page library in SharePoint.
<Module Name="CustomCSS" Url="Style Library"><File Path="CustomCSS\DAVCSS.css"  Url="CustomCSS/yourfile.css"  Type="GhostableInLibrary" />
"Url="Style Library"" means this will be deployed to the style library in SharePoint.
Now add the following code in the feature receiver class file that contains above modules. Right click on the feature and click "Add Event Receiver"
public override void featureactivated(spfeaturereceiverproperties properties)
      spsite currsite = (spsite)properties.feature.parent;
      spweb curweb = currsite.rootweb;
     uri masteruri = new uri(curweb.url + "/_catalogs/masterpage/custommaster.master");
     curweb.masterurl = masteruri.absolutepath;
     curweb.custommasterurl = masteruri.absolutepath;curweb.update();
   This will apply the master page on activation of the feature.
  public override void featuredeactivating(spfeaturereceiverproperties properties)
         spsite currsite = (spsite)properties.feature.parent;
        spweb curweb = currsite.rootweb;
       uri masteruri = new uri(curweb.url + "/_catalogs/masterpage/v4.master");
       curweb.masterurl = masteruri.absolutepath;
      curweb.custommasterurl = masteruri.absolutepath;

3 steps involved to add the user control
Create and deploy user control
Register user control in the target
<%@ Register TagPrefix="MyUserControl"  TagName="UserName" Src="~/_controltemplates/MyUserControl/MyUserControl.ascx" %>
Insert the user control wherever required.
<MyUserControl:UserName id="MyUserControl1" runat="server" />
Note: For webpart (Page.LoadControl method)
Use SharePoint designer. Register the namespace of the web part class using <% Register directive. Then use the specified tag prefix from "Register" directive to add the instance of Web part class. Web parts outside the web part zones are referred as static web parts and behave as normal web control.
Register the custom css file as below .
<SharePoint:CssRegistration name="<% $SPUrl:~SiteCollection/Style Library/Custom/styles.css %>" After="corev4.css" runat="server"/>
In CSS, we can wirtie the style for attaching image

With the help of delegate control, we can take any OOB control of SharePoint and replace with our custom control without any modification in the SharePoint page. So that new custom control overrides the existing one.
So the delegate control provide one of the option to add control (either server control or user control) on a SharePoint page
For example : In master page SearchBox control is included as  <SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" />
This delegate control object uses features to locate the control which is specified in ControlId.
We can overwrite the above delegate control by presenting the below code in Element file of feature  <Control Id = "GlobalNavigation" Sequence="90"  ControlSrc="~/_ControlTemplates/ucGlobNavDelegateControl.ascx" />

AdditionalPageHead,  GlobalSiteLink(), GlobalSiteLink1, GlobalSiteLink2, SmallSearcgInputBox,
TopNavigationDataSource, PublicConsole, QuickLaunchDatasource
Searching through the main master page, Seattle.master, I’ve found these three new DelegateControls:
You can enable a Web Provisioned event receiver
using (SPWeb childSite = properties.Web)
 {   using (SPWeb topSite = childSite.Site.RootWeb)
  {    childSite.MasterUrl = topSite.MasterUrl;
       childSite.CustomMasterUrl = topSite.CustomMasterUrl;
Using the SharePoint web interface or SharePoint Designer 2010
Using a master page
Using a page layout
Using a Content Editor Web Part
This has to be done in the site definition file system. I don't think there is an Interface for that, but it can be via SPD though.

List Attribute Id= 116

Changes in topnavigation control in  master page.

Master page and page layouts options missing in the left navigation in SharePoint designer2010

Users having site ownership privileges are able to view the site's Collection Administration pages but will not see the link enabling them to make the appropriate settings change.
Site collection administrators will enable the “Enable SharePoint Designer “(Site Actionsà SiteSettingsàselect SharePoint designer settings under site collection Administration category)

Conditionally renders the contents of the control to the current user only if the current user has permissions defined in the PermissionString.
<Sharepoint:SPSecurityTrimmedControl runat="server" PermissionsString="XYZ">
Leave a Comment
  • Please add 4 and 5 and type the answer here:
  • Post
Wiki - Revision Comment List(Revision Comment)
Sort by: Published Date | Most Recent | Most Useful
  • Richard Mueller edited Revision 1. Comment: Modified title, Changed tag "Microsoft SharePoint 2010" to "SharePoint 2010" and removed tag "SharePoint 2010 : Master page"

Page 1 of 1 (1 items)
Wikis - Comment List
Sort by: Published Date | Most Recent | Most Useful
Posting comments is temporarily disabled until 10:00am PST on Saturday, December 14th. Thank you for your patience.
  • nice work

  • Richard Mueller edited Revision 1. Comment: Modified title, Changed tag "Microsoft SharePoint 2010" to "SharePoint 2010" and removed tag "SharePoint 2010 : Master page"

Page 1 of 1 (2 items)