IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

master page fonctionnement


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 24
    Par défaut master page fonctionnement
    Bonjour,

    je me posait des question sur l'utilité des master page :

    j'ai bien comprit le principe, sur notre master page on a le squellette de l'application avec des "especes" d'include (<asp:contentplaceholder ...>)

    Par contre un truc que je ne trouve pas super :
    dans ma master page j'ai 2 pages inclut.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            <tr>
                <td width="20%"> 
                    <asp:contentplaceholder id="ident" runat="server"></asp:contentplaceholder>  
                </td>
                <td rowspan="2">             
                    <asp:contentplaceholder id="contenu" runat="server"></asp:contentplaceholder>            
                </td>
            </tr>

    pour "ident" j'ai elle s'appelle ident.aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Untitled Page" %>
    <asp:Content ID="ident" ContentPlaceHolderID="ident" Runat="Server">
        Login : <input type="text" name="login" /> <br />
        Pass :  <input type="text" name="pass" /> <br />
    </asp:Content>
    et pour "contenu" elle s'appelle accueil.aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Untitled Page" %>
    <asp:Content ID="contenu" ContentPlaceHolderID="contenu" Runat="Server">
        test contenu
    </asp:Content>
    Le probleme est que lorsque je vais sur localhost/accueil.aspx je n'ai que le bloc contenu qui s'affiche, et inversement je n'ai que le bloc ident qui s'affiche lorsque je vais sur localhost/ident.aspx.


    Du coup pour resoudre ce probleme j'ai mis dans chacune de mes pages (accueil.aspx et ident.aspx) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <%@ Page Language="C#" MasterPageFile="~/MasterPage.master" Title="Untitled Page" %>
     
     
    <asp:Content ID="contenu" ContentPlaceHolderID="contenu" Runat="Server">
        test contenu
    </asp:Content>
     
    <asp:Content ID="ident" ContentPlaceHolderID="ident" Runat="Server">
        Login : <input type="text" name="login" /> <br />
        Pass :  <input type="text" name="pass" /> <br />
    </asp:Content>

    et la ça fonctionne.
    Mais je ne vois donc pas l'interet des master page dans cet exemple sachant que pour chaque page "inclut" je vais devoir reprendre toute mes autre pages : ident et accueil dans mon cas.

    En fait ce que je voudrais (et ce que je pensai que les master page faisaient) c'est que sur ident.aspx je mette seuement le code de ident (formulaire d'identification) et pas les codes des autres blocs inclut. Est-ce possible ?

    Je n'utilise peut etre pas la bonne methode ou il y a peut etre un truc qui m'echappe...


    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    D'après ma maigre expérience, une MasterPage n'est pas une page qui va inclure tous les éléments qui sont placés dedans, mais plutôt une sorte de Masque qui sera appliqué aux pages qui en "hérite".

    Tu peux ainsi te développer une sorte de masque graphique que tu appliqueras à toutes tes pages et y définir les zones de contenu. Maintenant, à charge de chacune de tes pages de remplir les zone de contenu.

    Pour ton problème, je te conseille de jeter une oeil du côté des UserControls, ça pourra surement t'aider :-)

  3. #3
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    En effet comme le dit Pongten, un masterpage permet d'eviter de réécrire tout le temps le meme code en faisant un masque.
    Cela s'utilise donc surtout pour des pages qui ont tout le temps le même design et seul le contenu change.

    Toi tu cherches a inclure un obut de code. Pour cela il faudrait que tu utilises les UserControls.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/11/2009, 11h07
  2. Page fonctionne que sur FireFox
    Par Nicos77 dans le forum Langage
    Réponses: 9
    Dernier message: 20/12/2006, 15h53
  3. Réponses: 3
    Dernier message: 05/11/2006, 11h42
  4. Master Page dans Web Application?
    Par SirKus dans le forum ASP.NET
    Réponses: 8
    Dernier message: 28/06/2006, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo