Tiens pendant que j'y suis je te passe une partie de mon memento sur les pages maitres (c'est mon jour de bonté lol)
I pages maitres et pages de contenus
Page maitres (masterpage.master) et pages de contenus (.aspx)
1 - Ajouter une page maitre masterPage.master
Il faut en faite définir les éléments qui seront communs à toutes les pages du sitesur la page maitre
La page maître contient un ou plusieurs ContentPlaceHolder
2 - Ajouter une page de contenu
(Ajouter un nouvel élement>Web Form (.aspx) et cocher Sélectionner la page maître)
OU clic droit sur la page MasterPage.master dans Explorateur de solutions > Ajouter une page de contenu
Automatiquement la page prend en arrière plan les parties communes à toutes les pages
et à la place des ContentPlaceHolder de la page maître sont placés des content
Seul l intérieur des content peut être modifié (ajout tableau, composants,...)
------------------------------------------------------------------
C est l attribut MasterPageFile dans la directive de la page qui détermine la page maitre de cette page de contenue
Ce qui donne par exemple :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="contenu_2.aspx.vb" Inherits="Page_Maitres_contenu_2" MasterPageFile="~/Page Maitres/MasterPage.master" %>
------------------------------------------------------------------
II definir dynamiquement la master page
Lorsque l application a plusieurs pages maitres
il est possible de définir dynamiquement (par programmation) la page maitre de la page de contenu
ce peut être utilsé pour un site disposant de plusieurs présentations par exemple que utilisateur choisi selon sa préférence
ATTENTION c est dans l évênement PreInit de la page qu il faut déterminer la page maître
et non dans évênement Page_Load
Exemple :
ProtectedSub Page_PreInit(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMe.PreInit
Me.MasterPageFile = "~/Page Maitres/MasterPage.master"
EndSub
III Appliquer une page maitre a un dossier
Définir une page maitre pour l ensemble des pages d un dossier
1 - ajouter un fichier de configuration web.config au dossier
2 - Ajouter le code (dans <system.web> ...<system.web>")
<pages masterPageFile="$Chemin relatif vers masterpage.master$ " />
// ce qui donne :
<system.web>
<pages masterPageFile="~/Page Maitres/MasterPage.master" />
</system.web>
3 - Ajouter dans la directive de chaque page de contenu attribut :
MasterPageFile="$Chemin relatif vers masterpage.master$"
ce qui donne par exemple :
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="contenu_2.aspx.vb" Inherits="Page_Maitres_contenu_2" MasterPageFile="~/Page Maitres/MasterPage.master" %>