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: SharePoint