SharePoint 2010 - Specificare la master page su un page layout

Cosa faccio se voglio specificare una master page per un particolare page layout su un sito SharePoint dove è abilitata la feature di pubblicazione?

Normalmente indicare l’attributo MasterPageFile nel file aspx sarebbe sufficiente:

 

<%@ Page language="C#" MasterPageFile="MyCustom.master" Inherits="Microsoft.SharePoint.Publishing.PublishingLayoutPage,Microsoft.SharePoint.Publishing,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" %>

 

Il problema si trova nel fatto che la classe PublishingLayoutPage sovrascrive quanto indicato nell’attributo durante l’evento OnPreInit.

L’unica soluzione è quindi di sovrascrivere tale evento indicando qui la nostra master page personalizzata:

 

<script runat="server">

protected override void OnPreInit(EventArgs e)

{

    base.OnPreInit(e);

    this.MasterPageFile = "MyCustom.master";

}

</script>

Technorati Tags:

«novembre»
domlunmarmergiovensab
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910