Share via


Procédure pas à pas : création et utilisation de pages maîtres ASP.NET dans Visual Web Developer

Mise à jour : novembre 2007

Cette procédure pas à pas illustre la création d'une page maître et de plusieurs pages de contenu. Les pages maîtres vous permettent de créer une présentation de page (une page de modèle), puis de créer des pages séparées avec du contenu fusionné avec la page maître au moment de l'exécution. Pour plus d'informations sur les pages maîtres, consultez Vue d'ensemble des pages maîtres ASP.NET.

Cette procédure pas à pas illustre les tâches suivantes :

  • Création d'une page maître

  • Création d'une page ASP.NET avec le contenu que vous souhaitez afficher dans la page maître

  • Exécution des pages maîtres pour afficher un contenu différent

  • Sélection d'une page maître au moment de l'exécution

Composants requis

Pour exécuter cette procédure pas à pas, vous avez besoin de :

  • Visual Studio ou Microsoft Visual Web Developer Express.

  • Éventuellement, un fichier .jpg, .gif ou un fichier graphique que vous pouvez utiliser en tant que logo sur votre page maître. Il est recommandé que la largeur du logo ne dépasse pas 48 pixels. Toutefois, l'affichage d'un logo est facultatif et la taille exacte du graphique n'est pas importante dans cette procédure pas à pas.

Création d'un site Web

Si vous avez déjà créé un site Web dans Visual Web Developer (par exemple, en effectuant les étapes décrites dans Procédure pas à pas : création d'une page Web de base dans Visual Web Developer), vous pouvez utiliser ce site Web et passer à la section suivante, Création d'une page maître . Sinon, créez un site et une page Web en suivant ces étapes.

Pour créer un site Web de système de fichiers

  1. Ouvrez Visual Web Developer.

  2. Dans le menu Fichier, cliquez sur Nouveausite Web.

    La boîte de dialogue Nouveau site Web s'affiche.

  3. Sous Modèles Visual Studio installés, cliquez sur Site Web ASP.NET.

  4. Dans la zone Emplacement, entrez le nom du dossier dans lequel vous souhaitez conserver les pages de votre site Web.

    Par exemple, tapez le nom du dossier C:\SitesWeb.

  5. Dans la liste Langage, cliquez sur le langage de programmation que vous préférez utiliser.

  6. Cliquez sur OK.

    Visual Web Developer crée le dossier et une page nommée Default.aspx.

Création de la page maître

La page maître est le modèle de l'apparence de vos pages. De cette section, vous créerez d'abord une page maître. Vous utiliserez ensuite une table pour présenter la page maître avec un menu, un logo et un pied de page qui apparaîtra sur chaque page de votre site. Vous utiliserez également un espace réservé de contenu, qui correspond à une région de la page maître qui peut être remplacée par les informations d'une page de contenu.

Pour créer la page maître

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouterun nouvel élément.

  2. Sous Modèles Visual Studio installés, cliquez sur Page maître.

  3. Dans la zone Nom, tapez Master1.

  4. Activez la case à cocher Placer le code dans un fichier distinct.

    Remarque :

    Cette procédure pas à pas suppose que vous utilisez des fichiers code-behind pour toutes les pages. Si vous utilisez une page ASP.NET à fichier unique, le code illustré dans cette procédure pas à pas fonctionnera, mais il apparaîtra en mode Source, pas dans un fichier de code distinct.

  5. Dans la liste Langage, cliquez sur votre langage de programmation préféré, puis cliquez sur Ajouter.

    La nouvelle page maître s'ouvre en mode Source.

    En haut de la page se trouve une déclaration @ Master au lieu de la déclaration @ Page qui se trouve habituellement en haut des pages ASP.NET. Le corps de la page contient un contrôle ContentPlaceHolder qui correspond à la zone de la page maître où le contenu remplaçable sera fusionné à partir des pages de contenu au moment de l'exécution. Vous utiliserez davantage l'espace réservé de contenu lors d'une prochaine étape de cette procédure pas à pas.

Disposition de la page maître

La page maître définit l'apparence des pages sur votre site. Elle peut contenir n'importe quelle combinaison de texte statique et de contrôles. Une page maître contient également un ou plusieurs espaces réservés de contenu qui désignent l'emplacement du contenu dynamique lorsque les pages sont affichées.

Lors de cette procédure pas à pas, vous utiliserez une table qui vous aidera à positionner les éléments sur la page. Vous commencerez par créer un tableau de disposition qui contiendra les éléments de la page maître. Lors d'une étape ultérieure de cette section, vous positionnerez le contrôle de l'espace réservé de contenu qui se trouve déjà sur la page.

Pour créer un tableau de disposition pour la page maître

  1. À l'aide du fichier Master1.master sélectionné en mode Source, attribuez au schéma cible pour la validation la valeur Microsoft Internet Explorer 6.0. Pour définir cette valeur, vous pouvez utiliser la liste déroulante sur la barre d'outils ou sélectionner Options dans le menu Outils, puis cliquez sur Validation.

  2. Basculez en mode Design.

  3. Dans la liste déroulante qui s'affiche en haut de la fenêtre Propriétés, sélectionnez DOCUMENT, puis affectez à BgColor une couleur différente, par exemple bleu.

    La couleur que vous sélectionnez n'est pas importante. Lors d'une étape ultérieure de cette procédure, vous créerez une deuxième page maître sans couleur afin qu'elle contraste celle que vous venez de sélectionner.

  4. Cliquez sur la page où vous souhaitez placer le tableau de disposition.

    Remarque :

    Ne placez pas le tableau de disposition dans le contrôle ContentPlaceHolder.

  5. Dans le menu Tableau, cliquez sur Insérer un tableau.

  6. Dans la boîte de dialogue, cliquez Insérer un tableau pour créer un tableau de trois lignes et une colonne, puis cliquez sur OK.

  7. Placez le curseur à l'intérieur de la deuxième ligne de la table.

  8. Dans le menu Tableau, dans le sous-menu Modifier, cliquez sur Fractionner les cellules.

  9. Dans la boîte de dialogue Fractionner les cellules, sélectionnez Fractionner en colonnes, puis cliquez sur OK.

  10. Définissez les paramètres suivants :

    • Dans la ligne centrale, cliquez sur la colonne la plus à gauche, puis affectez 48 à sa Largeur dans la fenêtre Propriétés.

    • Cliquez sur la ligne supérieure, puis affectez 48 à sa Hauteur dans la fenêtre Propriétés.

    • Cliquez sur la ligne inférieure, puis affectez 48 à sa Hauteur dans la fenêtre Propriétés.

      Remarque :

      Vous pouvez définir la largeur et la hauteur en faisant glisser les bordures des cellules du tableau ou en sélectionnant la cellule et en affectant des valeurs dans la fenêtre Propriétés.

  11. Sélectionnez toutes les cellules dans la table et affectez à BgColor une couleur autre que la couleur d'arrière-plan.

Après avoir réalisé la disposition du tableau, vous pouvez ajouter du contenu à la page maître qui apparaîtra sur toutes les pages. Vous ajouterez un message de copyright en tant que pied de page ainsi qu'un menu. Si vous disposez d'un logo graphique, vous pouvez également l'ajouter.

Pour ajouter du contenu statique à la page maître

  1. Cliquez sur la cellule inférieure, puis tapez le texte du pied de page, par exemple Copyright 2007 Contoso Inc..

  2. Dans la Boîte à outils, à partir du groupe de contrôles Navigation, faites glisser un contrôle Menu dans la cellule supérieure.

  3. Créez un menu en suivant les étapes suivantes :

    1. Affectez à la propriété Orientation du contrôle Menu la valeur Horizontal.

    2. Cliquez sur la balise active du contrôle Menu, puis sur Modifier les éléments de menu dans la boîte de dialogue Tâches Menu.

  4. Sous Éléments, cliquez deux fois sur l'icône Ajouter un nœud racine pour ajouter deux éléments de menu :

    1. Cliquez sur le premier nœud, puis affectez Text à Home et href à Home.aspx.

    2. Cliquez sur le deuxième nœud, puis affectez Text à About et href à About.aspx.

    3. Cliquez sur OK pour fermer la boîte de dialogue Éditeur d'éléments de menu.

  5. Si vous disposez d'un fichier graphique à utiliser comme logo, suivez les étapes ci-dessous pour le placer sur la page maître :

    1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouter un élément existant.

    2. Naviguez vers votre fichier graphique, sélectionnez le fichier graphique, puis cliquez sur Ajouter.

    3. Dans la Boîte à outils, à partir du groupe Standard, faites glisser un contrôle Image dans la colonne centrale de gauche du tableau.

    4. Affectez à la propriété ImageUrl du contrôle Image le nom du fichier graphique.

Vous pouvez maintenant positionner l'espace réservé de contenu pour spécifier l'emplacement où la page maître peut afficher le contenu au moment de l'exécution.

Pour ajouter un espace réservé de contenu

  1. Faites glisser le contrôle ContentPlaceHolder dans la cellule centrale de droite.

    La propriété ID du contrôle est ContentPlaceholder1. Vous pouvez garder ce nom ou le modifier. Si vous modifiez le nom, notez-le quelque part, car vous devrez vous en rappeler ultérieurement.

  2. Enregistrez la page.

Création de contenu pour le page maître

La page maître fournit le modèle pour votre contenu. Définissez le contenu de la page maître en créant une page ASP.NET qui est associée à la page maître. La page de contenu est un formulaire spécialisé d'une page ASP.NET qui contient uniquement le contenu à fusionner avec la page maître. Dans la page de contenu, ajoutez le texte et les contrôles que vous souhaitez afficher lorsque les utilisateurs demandent cette page.

Lors de cette procédure pas à pas, vous ajouterez deux pages avec du contenu pour la page maître. La première est une page d'accueil et la deuxième est une page À propos de.

Pour créer la page d'accueil

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom de votre site Web, puis cliquez sur Ajouter un nouvel élément.

  2. Sous Modèles Visual Studio installés, cliquez sur Formulaire Web.

  3. Dans la zone Nom, tapez Home.

  4. Dans la liste Langage, cliquez sur votre langage de programmation préféré.

  5. Activez la case à cocher Sélectionner la page maître, puis cliquez sur Ajouter.

    La boîte de dialogue Sélectionner une page maître s'affiche.

  6. Cliquez sur Master1.master, puis sur OK.

    Un nouveau fichier .aspx est créé. La page contient une directive @ Page qui associe la page actuelle à la page maître sélectionnée avec l'attribut MasterPageFile, comme indiqué dans l'exemple de code suivant.

    [Visual Basic]

    <%@ Page Language="VB" MasterPageFile="~/Master1.master" ... %>
    

    [C#]

    <%@ Page Language="C#" MasterPageFile="~/Master1.master" ... %>
    

    La page contient également un contrôle Content que vous utiliserez par la suite.

Une page de contenu ne possède pas les éléments habituels qui composent une page ASP.NET, tels que les éléments html, body ou form. À la place, ajoutez uniquement le contenu que vous souhaitez afficher sur la page maître en remplaçant les régions d'espace réservé que vous avez créées dans la page maître.

Pour ajouter du contenu à la page d'accueil

  1. Basculez en mode Design.

    Les contrôles ContentPlaceHolder de la page maître sont affichés comme contrôles Content dans la nouvelle page de contenu. Le reste du contenu de page maître est affiché afin que vous puissiez consulter la disposition. Toutefois, il apparaît estompé parce que vous ne pouvez pas le modifier pendant que vous éditez une page de contenu.

  2. Dans la liste déroulante de la fenêtre Propriétés, cliquez sur DOCUMENT, puis affectez Title à Page d'accueil Contoso.

    Vous pouvez définir indépendamment le titre de chaque page de contenu, afin que le titre approprié soit affiché dans le navigateur lorsque le contenu est fusionné avec la page maître. Les informations de titre sont stockées dans la directive @ Page de la page de contenu.

  3. Dans le contrôleContent qui correspond à ContentPlaceHolder1 sur la page maître, tapez Bienvenue sur le Site Web Contoso.

  4. Sélectionnez le texte et transformez-le en titre en sélectionnant En-tête 1 dans la liste déroulante Format du bloc au-dessus de Boîte à outils.

  5. Appuyez sur ENTRÉE pour créer une ligne vierge dans le contrôle Content, puis tapez Merci de votre visite.

    Le texte que vous ajoutez à cette étape n'est pas important ; vous pouvez taper n'importe quel texte qui vous aidera à reconnaître que cette page est la page d'accueil.

  6. Enregistrez la page.

Vous pouvez créer la page À propos de la même façon que vous avez créé la page d'accueil.

Créer la page À propos de

  1. Pour ajouter une nouvelle page de contenu nommée About.aspx, suivez les mêmes étapes que pour la page d'accueil.

    Veillez à attacher la nouvelle page à la page Master1.master comme vous l'avez fait avec la page d'accueil.

  2. Remplacez le titre de la page par Page À propos de Contoso.

  3. Dans la région de contenu, tapez À propos de Contoso, puis mettez en forme le texte en Titre 1 en sélectionnant le texte et Heading 1 dans la liste déroulante Format du bloc au-dessus de la Boîte à outils.

  4. Appuyez sur ENTRÉE pour créer une ligne, puis tapez Depuis 1982, Contoso fournit des services logiciels de haute qualité.

  5. Enregistrez la page.

Test des pages

Vous pouvez tester les pages en les exécutant comme vous le feriez avec une page ASP.NET quelconque.

Pour tester les pages

  1. Basculez vers la page Home.aspx, puis appuyez sur CTRL+F5.

    ASP.NET fusionne le contenu de la page Home.aspx avec la disposition de la page Master1.master en une seule page et affiche la page qui s'affiche dans le navigateur. Vous pouvez remarquer que l'URL de la page est Home.aspx ; il n'y a aucune référence dans le navigateur à la page maître.

  2. Cliquez sur le lien À propos....

    La page About.aspx est affichée. Elle est également fusionnée avec la page Master1.master.

Référencement des membres de la page maître

Le code des pages de contenu peut référencer des membres sur la page maître, y compris des propriétés ou des méthodes publiques et des contrôles de la page maître. Dans cette partie de la procédure pas à pas, vous créerez une propriété sur la page maître, puis utiliserez la valeur de cette propriété dans les pages de contenu. Cela implique que le nom de la société du site Web soit stocké en tant que propriété dans la page maître et que toute référence au nom de la société dans les pages de contenu soit fonction de la propriété de la page maître.

La première étape consiste à ajouter une propriété à la page maître.

Pour ajouter une propriété à la page maître

  1. Basculez vers la page Master1.master ou ouvrez-la.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Master1.master, puis cliquez sur Afficher le code pour ouvrir l'éditeur de code.

    Remarque :

    Par défaut, Visual Web Developer crée des pages qui utilisent le modèle code-behind. Si vous préférez, vous pouvez créer le code en utilisant le modèle à fichier unique. Pour plus d'informations, consultez Modèle de code des pages Web ASP.NET.

  3. Dans la définition de classe, tapez le code suivant :

    Public Property CompanyName() As String
        Get
            Return CType(ViewState("companyName"), String)
        End Get
        Set(ByVal Value As String)
            ViewState("companyName") = Value
        End Set
    End Property
    
    public String CompanyName
    {
        get { return (String) ViewState["companyName"]; }
        set { ViewState["companyName"] = value; }
    }
    

    Le code crée une propriété nommée CompanyName pour la page maître. La valeur est stockée dans l'état d'affichage afin d'être persistante entre les publications (postback).

  4. Dans la définition de classe (mais pas dans le code de propriété), ajoutez le code suivant :

    Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _
           Handles Me.Init
       Me.CompanyName = "Contoso"
    End Sub
    
    void Page_Init(Object sender, EventArgs e)
    {
       this.CompanyName = "Contoso";
    }
    

    Pour cet exemple, vous coderez en dur la valeur de la propriété CompanyName dans la page.

Vous pouvez maintenant modifier la page de contenu pour utiliser la propriété CompanyName de la page maître.

Pour référencer la propriété CompanyName dans la page de contenu

  1. Basculez vers la page Home.aspx ou ouvrez-la.

  2. Basculez en mode Source.

  3. En haut de la page, sous la directive @ Page, ajoutez la directive suivante @ MasterType :

    <%@ MasterType virtualpath="~/Master1.master" %>
    

    La directive lie la propriété Master de la page de contenu, que vous utiliserez bientôt, à la page Master1.master.

  4. Basculez en mode Design.

  5. Dans le contrôle Content, remplacez le texte par Bienvenue sur le site Web de.

  6. Dans la Boîte à outils, à partir du groupe Standard, faites glisser un contrôle Label sur le contrôle Content, et placez-le après le texte statique afin que le texte se présente comme suit :

    Bienvenue sur le site Web de [Étiquette]

  7. Affectez CompanyName à la propriété ID du contrôle Label.

  8. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Home.aspx, puis cliquez sur Afficher le code pour ouvrir l'éditeur de code.

  9. Dans la définition de classe, ajoutez le code suivant :

    Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) _
            Handles Me.Load
        CompanyName.Text = Master.CompanyName
    End Sub
    
    void Page_Load(Object sender, EventArgs e)
    {
       CompanyName.Text = Master.CompanyName;
    }
    

    La propriété Master de la page de contenu retourne une référence à la page maître comme défini dans la directive @ MasterType que vous avez ajoutée à l'étape 3.

Vous pouvez maintenant tester la page de contenu afin de vous assurer qu'elle référence correctement la propriété CompanyName de la page maître.

Pour tester la référence à la propriété de la page maître

  1. Basculez vers la page Home.aspx ou ouvrez-la, puis appuyez sur CTRL+F5 pour exécuter la page.

    La page est affichée dans le navigateur, avec le texte Bienvenue sur le site Web de Contoso

  2. Fermez le navigateur.

  3. Basculez vers la page code-behind Master1.master ou ouvrez-la.

  4. Modifiez le gestionnaire Page_Init afin d'assigner un nom de société différent à la propriété, comme dans l'exemple de code suivant :

    Sub Page_Init(ByVal sender As Object, ByVal e As EventArgs) _
           Handles Me.Init
       Me.CompanyName = "New Company Name"
    End Sub
    
    void Page_Init(Object sender, EventArgs e)
    {
       this.CompanyName = "New Company Name";
    }
    
  5. Basculez vers la page Home.aspx, puis appuyez sur CTRL+F5 pour l'exécuter une nouvelle fois.

    Cette fois, le nom de la société mis à jour apparaît dans la page.

Modification dynamique des pages maîtres

Dans certaines circonstances, vous souhaiterez peut-être pouvoir modifier des pages maîtres de façon dynamique ; c'est-à-dire utiliser le code pour définir la page maître pour une page de contenu. Par exemple, vous souhaiterez peut-être permettre aux utilisateurs de sélectionner entre plusieurs dispositions et de définir la page maître en fonctions de leurs préférences.

Dans cette partie de la procédure pas à pas, vous ajouterez une deuxième page maître au site Web, puis créerez des boutons qui permettront à l'utilisateur de basculer d'une page maître à une autre. Étant donné que les deux pages maîtres seront très semblables, vous ferez une copie de la première page maître et la modifierez afin qu'elle agisse en tant que deuxième page maître.

Pour faire une copie de la page maître

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Master1.master, puis cliquez sur Copier.

  2. Cliquez avec le bouton droit sur le nom du site Web, puis cliquez sur Coller.

    Une page maître est ajoutée au site Web avec le nom Copie de master1.master.

  3. Cliquez avec le bouton droit sur Copie de master1.master, cliquez sur Renommer, puis nommez la nouvelle page maître Master2.master.

  4. Ouvrez Master2.master et, dans la directive @ Master, remplacez Master1 par Master2.

    La directive de page terminée se présentera comme illustré dans l'exemple de code suivant :

    <%@ Master Language="VB" CodeFile="Master2.master.vb" Inherits="Master2" %>
    
    <%@ Master Language="C#" CodeFile="Master2.master.cs" Inherits="Master2" %>
    
  5. Basculez en mode Design.

  6. Dans la liste déroulante qui se trouve en haut de la fenêtre Propriétés, cliquez sur DOCUMENT.

  7. Effacez la propriété BgColor.

    La nouvelle page maître se présentera et fonctionnera comme Master1.master, mais n'aura aucune couleur d'arrière-plan.

  8. Ouvrez le fichier de code pour Master2.master et transformez le nom de la classe dans le fichier code-behind de la page maître, de Master1 en Master2, pour correspondre à la valeur de l'attribut Inherits dans la directive @ Master de la page.

    Le code se présentera comme illustré dans l'exemple suivant :

    Partial Class Master2
    
    public partial class Master2 : System.Web.UI.MasterPage
    

L'étape suivante consiste à ajouter un bouton à chaque page maître qui permet à l'utilisateur de sélectionner la page maître de remplacement.

Pour ajouter des boutons permettant de sélectionner une page maître de remplacement

  1. Basculez vers la page Master2.master ou ouvrez-la.

  2. Dans la Boîte à outils, dans le nœud Standard, faites glisser un contrôle LinkButton sur la page et placez-le en-dessous du menu dans la cellule supérieure du tableau.

  3. Affectez Colorful à la propriété Text du bouton.

  4. Double-cliquez sur le bouton pour créer un gestionnaire pour son événement Click, puis ajoutez le code en surbrillance suivant :

    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_
            Handles LinkButton1.Click
        Session("masterpage") = "Master1.master"    Response.Redirect(Request.Url.ToString())
    End Sub
    

    [C#]

    void LinkButton1_Click(Object sender, EventArgs e)
    {
       Session["masterpage"] = "Master1.master";   Response.Redirect(Request.Url.ToString());
    }
    

    Le code charge le nom de fichier de la page maître de remplacement dans une variable de session persistante, puis recharge la page actuelle. (La propriété Url retourne un objet Uri qui référence la page actuelle.) Bientôt, vous créerez le code dans la page de contenu qui utilisera le nom de la page maître.

  5. Basculez vers la page Master1.master ou ouvrez-la en mode Design.

  6. Ajoutez un contrôle LinkButton comme vous l'avez fait lors des étapes 1 et 2, puis affectez Plain à sa propriété Text.

  7. Double-cliquez sur le bouton Plain pour créer un gestionnaire pour son événement Click, puis ajoutez le code en surbrillance suivant :

    Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs)_
            Handles LinkButton1.Click
        Session("masterpage") = "Master2.master"    Response.Redirect(Request.Url.ToString())
    End Sub
    
    void LinkButton1_Click(Object sender, EventArgs e)
    {
       Session["masterpage"] = "Master2.master";   Response.Redirect(Request.Url.ToString());
    }
    

    Ce code est le même que celui du bouton de la page Master2.master, à la différence qu'il charge une page maître de remplacement.

Écrivez maintenant le code dans la page de contenu qui chargera dynamiquement la page maître que l'utilisateur a sélectionnée.

Pour écrire du code permettant de sélectionner dynamiquement la page maître

  1. Basculez vers la page About.aspx ou ouvrez-la.

    Remarque :

    La page d'accueil que vous avez déjà créée contient une directive @ MasterType qui la lie à une seule page maître (Master1.master). Par conséquent, vous ne serez pas en mesure d'assigner dynamiquement des pages maîtres à la page d'accueil et utiliserez à la place d'autres pages que vous aurez créées.

  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur About.aspx, puis cliquez sur Afficher le code pour ouvrir l'éditeur de code.

  3. Dans la définition de classe, ajoutez le code suivant :

    Sub Page_PreInit(ByVal sender As Object, ByVal e As EventArgs) _
            Handles Me.PreInit
       If Not Session("masterpage") Is Nothing Then
          Me.MasterPageFile = CType(Session("masterpage"), String)
       End If
    End Sub
    
    void Page_PreInit(Object sender, EventArgs e)
    {
       if(Session["masterpage"] != null)
       {
          this.MasterPageFile = (String) Session["masterpage"];
       }
    }
    

    Le code affecte à la propriété MasterPageFile de la page en cours la valeur de la variable de session, s'il en existe une. Ce code doit s'exécuter dans le gestionnaire Page_PreInit. Il ne peut pas s'exécuter dans un gestionnaire qui intervient après le gestionnaire Page_PreInit (par exemple, dans le gestionnaire Page_Init), car la page maître doit être établie de sorte que la page puisse créer une instance de celle-ci avant que toute initialisation supplémentaire puisse se produire.

Vous pouvez à présent tester dynamiquement les pages maîtres.

Pour tester les pages maîtres dynamiques

  1. Dans la page About.aspx, appuyez sur CTRL+F5 pour exécuter la page.

    La page fusionnée avec sa page maître par défaut, Master1.master, est affichée dans le navigateur.

  2. Cliquez sur le lien Normal.

    La page est réaffichée, cette fois-ci fusionnée avec Master2.master, qui n'a aucune couleur d'arrière-plan.

  3. Cliquez sur le lien Couleur.

    La page est une nouvelle fois affichée à l'aide de Master1.master.

Remarques concernant l'utilisation des pages maîtres

Lorsque vous utilisez une page maître, vous devez être informé(e) de l'existence de plusieurs autres problèmes :

  • Dans une application réelle, vous stockeriez probablement des informations telles que le nom de la société dans le fichier de configuration et le liriez directement dans les pages de contenu. Toutefois, le scénario exposé dans cette section fournit une illustration simple du référencement des membres de page maître dans les pages de contenu.

  • Vous pouvez accéder aux membres dans la page maître sans inclure de directive @ MasterType. Pour cela, vous devez, toutefois, effectuer un cast de la propriété Page.Master en type de page maître approprié (la propriété Master est null si une page n'a aucune page maître). Pour plus d'informations, consultez Utilisation des pages maîtres ASP.NET par programme.

Vous pouvez référencer des contrôles sur la page maître en utilisant la méthode Master.FindControls. Pour plus d'informations, consultez Utilisation des pages maîtres ASP.NET par programme.

Lorsque vous utilisez des pages maîtres dynamiques, vous devez être informé(e) de l'existence de plusieurs autres problèmes :

  • Le scénario décrit dans cette section permettant de modifier des pages maîtres est simplifié afin que la procédure pas à pas reste concentrée sur les pages maîtres. Dans une vraie application, vous afficheriez très probablement un choix de dispositions, puis stockeriez la préférence de l'utilisateur en utilisant des profils. Pour plus d'informations, consultez Vue d'ensemble des propriétés du profil ASP.NET.

  • Vous pouvez configurer votre site Web afin que toutes les pages utilisent la même page maître. Il se peut que quelques pages doivent utiliser une page maître de remplacement que vous pouvez configurer dans le code de manière identique à celle qui est indiquée dans cette section de la procédure pas à pas. Pour plus d'informations, consultez « Portée des pages maîtres » dans Vue d'ensemble des pages maîtres ASP.NET.

  • Vous devez ajouter le code de la page Home.aspx à chaque page pour laquelle vous souhaitez substituer la page maître par défaut.

Étapes suivantes

Cette procédure pas à pas illustre les fonctionnalités de base des pages maîtres. Vous souhaiterez peut-être essayer d'autres fonctionnalités des pages maîtres. Vous pouvez, par exemple, souhaiter effectuer les opérations suivantes :

  • Créez des pages maîtres qui ont plusieurs espaces réservés de contenu. Ensuite, vous pouvez remplir un ou plusieurs espaces réservés avec le contenu de chaque page que vous affichez.

  • Définissez des espaces réservés de contenu avec le contenu par défaut. Si une page ASP.NET ne fournit pas de contenu pour l'espace réservé, la page maître affiche le contenu par défaut.

  • Accédez par programme aux membres de la page maître à partir des pages de contenu. Cela vous permet de modifier dynamiquement l'apparence de la page maître au moment de l'exécution. Pour plus d'informations, consultez Comment : référencer le contenu de la page maître ASP.NET.

  • Utilisez le filtrage des périphériques avec les pages maîtres pour créer différentes dispositions pour différents périphériques, telles qu'une disposition pour des navigateurs et une autre pour un type spécifique de téléphone. Pour plus d'informations, consultez Vue d'ensemble des filtres de périphérique ASP.NET.

  • Apprenez comment placer des pages maîtres dans des pages maîtres afin de créer des parties basées sur des composants. Pour plus d'informations, consultez Pages maîtres ASP.NET imbriquées.

Voir aussi

Concepts

Vue d'ensemble des pages maîtres ASP.NET

Événements dans les pages maîtres et de contenu ASP.NET