Pages maîtres ASP.NET imbriquées
Mise à jour : novembre 2007
Les pages maîtres peuvent être imbriquées, une page maître en référençant une autre comme étant son maître. Les pages maîtres imbriquées vous permettent de créer des pages maîtres basées sur des composants. Par exemple, un site de grande envergure peut contenir une page maître globale qui définit l'apparence du site. Les différents partenaires de contenu du site peuvent ensuite définir leurs propres pages maîtres enfants qui référencent le site maître et définissent à leur tour l'apparence du contenu de chaque partenaire.
Les fichiers de pages maîtres enfants portent l'extension .master, comme n'importe quelle autre page maître. La page maître enfant contient généralement des contrôles de contenu qui sont mappés vers les espaces réservés de contenu de la page maître parente. À cet égard, la page maître enfant se présente comme n'importe quelle page de contenu. Toutefois, la page maître enfant contient également des espaces réservés de contenu pour afficher le contenu fourni par ses propres pages enfants. Les trois listes de pages suivantes présentent une configuration de page maître imbriquée simple.
Voici le fichier maître parent :
<% @ Master Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<head >
<title>Untitled Page</title>
</head>
<form id="Form1" >
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" />
</div>
</form>
</body>
</html>
<% @ Master Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head >
<title>Untitled Page</title>
</head>
<body>
<form id="Form1" >
<div>
<h1>Parent Master</h1>
<p style="font:color=red">This is parent master content.</p>
<asp:ContentPlaceHolder ID="MainContent" />
</div>
</form>
</body>
</html>
Voici le fichier maître enfant :
<%@ Master Language="VB" MasterPageFile="~/Parent.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent" >
<asp:panel id="panelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:panel id="panel1" backcolor="lightblue">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" />
</asp:panel>
<asp:panel id="panel2" backcolor="pink">
<p>This is childmaster content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" />
</asp:panel>
<br />
</asp:panel>
</asp:Content>
<%@ Master Language="C#" MasterPageFile="~/Parent.master"%>
<asp:Content id="Content1" ContentPlaceholderID="MainContent" >
<asp:panel id="panelMain" backcolor="lightyellow">
<h2>Child master</h2>
<asp:panel id="panel1" backcolor="lightblue">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent1" />
</asp:panel>
<asp:panel id="panel2" backcolor="pink">
<p>This is child master content.</p>
<asp:ContentPlaceHolder ID="ChildContent2" />
</asp:panel>
<br />
</asp:panel>
</asp:Content>
Voici un fichier enfant qui référence la page maître enfant :
<%@ Page Language="VB" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" >
<asp:Label id="Label1"
text="Child label1" font-bold="true" />
<br>
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2" >
<asp:Label id="Label2"
text="Child label2" font-bold="true"/>
</asp:Content>
<%@ Page Language="C#" MasterPageFile="~/Child.master"%>
<asp:Content id="Content1" ContentPlaceholderID="ChildContent1" >
<asp:Label id="Label1"
text="Child label1" font-bold="true" />
<br />
</asp:Content>
<asp:Content id="Content2" ContentPlaceholderID="ChildContent2" >
<asp:Label id="Label2"
text="Child label2" font-bold="true"/>
</asp:Content>