In this article
we will discuss how to change master page programmatically in
SharePoint 2010. You can also check my last article on how to change
page layout programmatically here. You can check how to create custom master page using SharePoint 2010 designer in SharePoint 2010.
We
will discuss how to change the master page at the time of site
creation. So for that purpose we will have to write one event handler
that will fire in the WebProvisioned event. You can check an article on
how to create event receiver using Visual Studio 2010 in SharePoint 2010.
Once we created the event receiver we need to override the WebProvisioned() method as below to change the master page.
public override void WebProvisioned(SPWebEventProperties properties)
{
try
{
using (SPWeb currentWeb = properties.Web)
{
currentWeb.AllowUnsafeUpdates = true;
currentWeb.MasterUrl = "/_catalogs/masterpage/MyCustomMaster.master";
currentWeb.CustomMasterUrl = "/_catalogs/masterpage/MyCustomMaster.master";
//You can use the below approach also, but sometimes that did not work.
//currentWeb.CustomMasterUrl =
currentWeb.Site.RootWeb.ServerRelativeUrl +
"/_catalogs/masterpage/MyHpIndigo2ndLevelMaster.master";
currentWeb.Update();
currentWeb.AllowUnsafeUpdates = false;
}
}
catch (Exception ex)
{
throw;
}
}
Once
you will deploy the event receiver, try creating a web site and you
will see the default master page will change to the custom master page.
No comments:
Post a Comment