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 invisible


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut master page invisible
    Bonjour,

    1-
    Dans mon site j'ai créé une master page dans laquelle j'ai mis un bouton.

    J'ai créé une autre page qui hérite de la master page et dans laquelle il ya un

    textebox.

    quand j'exécute je vois le textebox et je ne vois pas le bouton qui est dans la

    masterpage !!

    Ces champs je les ai mis juste pour tester l'utilisation des master pages.

    2-
    Dans mon application j'ai dèja des pages aspx.
    Je veux créé une master page dans laquelle je mettrai un menu déroulant.

    Comment rendre ces pages comme pages héritant de la master page contenant le menu déroulant, sans avoir à recreer les pages depuis le début en cochant la case " Selectionner la page maitre " ?

    Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Il me semble que c'est la propriété Masterpage..

    T crée un page avec VS et tu fais sélectionner la masterpage.. Ensuite tu regardes l'entête de cette page ou il y a un propiété qui fait apelle a la masterpage et tu la recopies dans tes pages....

    Ne pas oublier de définir un contentplaceholder dans ta masterpage et le redéclarer dans ta page fille

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Citation Envoyé par p_mehdi Voir le message
    Il me semble que c'est la propriété Inherits..

    T crée un page avec VS et tu fais sélectionner la masterpage.. Ensuite tu regardes l'entête de cette page ou il y a un propiété qui fait apelle a la masterpage et tu la recopies dans tes pages....

    Ne pas oublier de définir un contentplaceholder dans ta masterpage et le redéclarer dans ta page fille

    Merci pour votre réponse.

    Concernant le bouton qui est dans la masterpage, pourquoi il n'est pas visible dans les pages qui héritent de la masterpage ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 298
    Par défaut
    Parce que ton héritage a foiré..

    Montre ton code parce que sans voir ce que tu as fait c'est difficille...

    Si tu as ca dans ta page fille
    MasterPageFile="~/MasterPage.master"

    ça dans ta page Fille aussi
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    </asp:Content>

    et ça dans ta page maître

    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
    </asp:ContentPlaceHolder>

    et bien ca marche très bien

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 151
    Par défaut
    Bonjour,

    Voila ce que j'ai dans la page fille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default4.aspx.vb" Inherits="Default4" title="Untitled Page" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <asp:TextBox ID="TextBox1" runat="server" Style="left: 87px; position: relative;
            top: 64px"></asp:TextBox>
    </asp:Content>

    Et dans la page maitre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    <%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Page sans titre</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
                <asp:Button ID="Button1" runat="server" Style="left: 23px; position: relative; top: 11px"
                    Text="Button" /></asp:contentplaceholder>
        </div>
        </form>
    </body>
    </html>

    Je ne vois toujours pas le bouton qui est dans la masterpage

  6. #6
    Membre Expert Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Par défaut
    Salut,
    il me semble qu'il ne faut pas que le bouton soit dans les balises <asp:contentplaceholder/> car dans ces balises se met le texte changeant d'une page à l'autre.

    Il faudrait plutot faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form id="form1" runat="server">
        <div>
            <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
                </asp:contentplaceholder>
            <asp:Button ID="Button1" runat="server" Style="left: 23px; position: relative; top: 11px"
                    Text="Button" />
        </div>
        </form>
    J'espère que cela t'aidera,
    Lola

  7. #7
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    C'est pas tout à fait comme ça qu'il faut l'entendre.
    Certe le code de lola06 fonctionne, mais il faut remonter d'un cran pour bien comprendre.

    A quoi sert une MasterPage ? C'est ça la vraie question de départ. Cela sert à répéter sur différentes page du site la même chose sans le reprogrammer à chaque fois tout en gardant une dynamisation de la chose.

    Du coup, il faut monter une MasterPage dans un esprit de présentation, plus qu'autre chose, et lui mettre des <asp:ContentPlaceHolder ID="cphEnTete" runat="server"></asp:ContentPlaceHolder> qui vont servir de "trous" à remplir par les pages du site.

    Dans les pages du site il faut rappeller le trou avec un <asp:Content ID="cEntete" ContentPlaceHolderID="cphEnTete" Runat="Server"></asp:Content> tout simplement.

    Dans l'exemple du bouton, c'est pas comme ça qu'il faut faire. Un bouton c'est dynamique, donc soit il doit être présente sur toutes les apges, sans exeption et là il ça place dans la MasterPage, en dehors de tout ContentPlaceHolder (CodeBehind à volonté, une Master est une page comme les autres) soit ce bouton n'arrive que dans certains cas et doit être placé dans la page qu'il lui convient, appellé dans un Content de la page.

    Dans les pages, tout se trouve dans un ou plusieurs Content, rien ne doit être inscrit en dehors.

    Voilà, avec ça t'es parti pour longtemps sur les MasterPage. Si tu veux, j'ai même développé un truc avec plein de MasterPage, une seule Page ASPX, plein de ASCX et plein de sites en même temps.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Fortune teller
    Inscrit en
    Octobre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Fortune teller

    Informations forums :
    Inscription : Octobre 2007
    Messages : 110
    Par défaut
    Par contre, si tu mets le bouton dans la page fille ça marche.
    Apparemment, on ne peut mettre dans un asp:contentplaceholder que du contenu ou des contrôles de contenu (textbox, label, etc.)

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/11/2006, 11h42
  2. Master Page dans Web Application?
    Par SirKus dans le forum ASP.NET
    Réponses: 8
    Dernier message: 28/06/2006, 12h22
  3. rendre une page invisible par les mteurs de recherche
    Par Delphi-ne dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/04/2006, 19h16
  4. [CSS] Page invisible
    Par FrankOVD dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 10/08/2005, 11h38

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