Академический Документы
Профессиональный Документы
Культура Документы
1. Introduction
Une Master Page est en fait une page Web qui va servir de modle pour les autres pages.
Plus exactement, on va dfinir sur une page quel Master Page (page matre en franais)
elle va devoir utiliser. Pour que cela puisse fonctionner, la Master Page contient des
ContentPlaceHolder avec des ID diffrents. Ce sont ces conteneurs que le page va
remplir. En rsum : une page va pointer vers un modle quelle va utiliser. Dans ce
modle se trouvent un ou plusieurs conteneurs. La page qui a t appel par lutilisateur
ne fera que remplir le ou les conteneurs avec le code que nous avons spcifi (du moins
si nous avons dfini un contenu pour le conteneur). Voila pour la partie thorique :
passons maintenant la cration et lutilisation dune Master Page.
Pour cela voyons dabord le code de la page matre une fois modifi (les modifications
sont soulignes) :
Code de la page matre
Cet exemple nous montre bien que lon nest pas oblig de mettre du contenu dans la
page matre. Si vous regardez la barre dadresse vous verrez que la proprit Title de la
page Default.aspx a bien modifi le titre de la page. Maintenant que nous savons utiliser
les pages matres dans nos pages, nous allons apprendre y ajouter du contenu.
3. Ajouter du contenu
Maintenant que cest un peu plus clair dans vos esprits nous allons voir comment ajouter
du contenu. Pour cela nous avons une page Default.aspx qui va afficher dans le corps de
la page un formulaire qui nous permettra de rentrer notre pseudo. Et une seconde page
qui va rcuprer le pseudo et lafficher. Pour cela on va utiliser la page matre faites plus
haut.
Pour ajouter du contenu au ContentPlaceHolder de la page matre, il va falloir rajouter
une balise spciale : asp:Content.
Page Default.aspx
Page GestionFormulaire.aspx
<div>
<asp:TextBox ID="TextBox" runat="server">
</asp:TextBox><br /><br />
<asp:ContentPlaceHolder ID="Body" runat="server">
</asp:ContentPlaceHolder>
</div>
Avec laccesseur qui permet de rcuprer le texte entr dans la TextBox :
AccesMaitre.Master.cs
Avec cette mthode on peut accder nimporte quelle proprit de la page matre.
Remarquez quil faut quand mme que la proprit ou mthode en question soit
publique.
Default.aspx.cs
Regardez bien le code de la page AffichMenu.Master. Cest lui le plus important. Vous
voyez quil ressemble beaucoup une page aspx qui utiliserait une page matre avec
juste la directive qui reste Master. Elle comporte aussi un Content pour remplir le Body.
Dedans on dfini larchitecture de notre page et on remet un ContentPlaceHolder
lendroit o lon veut que le contenu de la page se place. Le reste (laffichage, les
bordures, couleurs ) est du CSS simple. Vous pouvez voir si dessous un aperu de ce
que lon obtient sur le navigateur.
Attention : Les ContentPlaceHolder de la premire page matre sont TOUS remplac par
le contenu de la balise Content leur correspondant dans la seconde page matre et cela
mme sil ny a rien. Ainsi si vous faites un page matre avec un ContentPlaceHolder
nomm BodyContent et qui contiendra les donnes spcifiques chaque page, une fois
votre seconde page matre pass ce ContentPlaceHolder nexistera plus. On ne pourra
donc pas, depuis une page qui utilise la seconde page matre, ajouter les donnes
principales. Pour contourner cela il faut tout simplement redfinir ce ContentPlaceHolder :
Premire page matre
<asp:Content
ID="Content1"
ContentPlaceHolderID="BodyContent"> <asp:ContentPlaceHolder
ID="BodyContent" />
</asp:Content>
runat="server"
runat="server"
Une fois ceci fais, vous pourrez faire appel au ContentPlaceHolder BodyContent depuis
votre page ASPX.
10
11
</asp:Content>
Default.aspx.cs
12
13