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 :

Menu control (selected) dans une PageMaitre imbriquée (nested) [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut Menu control (selected) dans une PageMaitre imbriquée (nested)
    Bonjour à tous,
    Je rencontre qlq difficultés à garder afficher le style (ou CSS) du Item du menu sélectionné.
    J'ai 2 pages Master imbriquée, Master1 et Master2 (dans master1).
    Dans la page Master2, je souhaite avoir un menu (hors du PlaceHolder) qui active l'Url sélectionnée par le menu.
    ça, ça marche.
    Le problème, c'est que l'option du menu sélectionnée ne reste pas affiché (j'ai simplifié avec la BackColor).
    Le StaticMenuItemStyle fonctionne.
    Le hover aussi, mais pas le SelectedStyle, il semble que la Master2 ne tienne pas compte de la balise StaticSelectedStyle...
    Ci-dessous le html de Master1 :
    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>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <div id="header">
            </div>
            <div>
                <asp:ContentPlaceHolder id="ContentData1" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            <div id="footer">
            </div>
        </form>
    </body>
    </html>
    Code de la Master2 :
    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" MasterPageFile="~/Clients_Pages/MasterPage.master" AutoEventWireup="false" CodeFile="MasterPageRedaction.master.vb" Inherits="MasterPageRedaction" %>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentData1" Runat="Server">
        <br />
        <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal">
            <StaticMenuItemStyle BackColor="Aqua" />
            <StaticHoverStyle BackColor="Orange" />
            <StaticSelectedStyle BackColor="Red" />
            <Items>
                <asp:MenuItem Text="texte 1" Value="option1"></asp:MenuItem>
                <asp:MenuItem Text="texte 2" Value="option2"></asp:MenuItem>
                <asp:MenuItem Text="texte 3" Value="option3"></asp:MenuItem>
            </Items>
        </asp:Menu>
        <br />
        Fin du menu
        <br />
        <asp:ContentPlaceHolder ID="ContentRedaction" runat="server">
        </asp:ContentPlaceHolder>
    </asp:Content>
    Code la page chargée par la Master2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <%@ Page Title="" Language="VB" MasterPageFile="~/Clients_Pages/Redaction/MasterPageRedaction.master" AutoEventWireup="false" CodeFile="Redaction_Edit.aspx.vb" Inherits="Redaction_Edit" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="ContentRedaction" Runat="Server">
        Contenu de la page
    </asp:Content>
    Il n'y aucun code concernant le menu dans le codebehind.
    Comment faire en sorte que Master2 puisse garder le design de l'option du menu choisie ?

    Merci
    Patrick

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Bonjour à tous,
    J'ai avancé dans ces pagemaster.
    j'ai du changer les PlaceHolders : ci-dessous les codes :
    La MasterPage principale (Master1)
    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
    <%@ Master Language="VB" CodeFile="Master1.master.vb" Inherits="TEST_NestedMaster_Master1" %>
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ContentPlaceHolder id="ContenuPourSubM1" runat="server">
     
            </asp:ContentPlaceHolder>
        </div>
        </form>
    </body>
    </html>
    La MasterPage secondaire (Master2):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <%@ Master Language="VB" MasterPageFile="~/TEST_NestedMaster/Master1.master" AutoEventWireup="false" CodeFile="Master2.master.vb" Inherits="TEST_NestedMaster_SubMaster_Master2" %>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="ContenuPourSubM1" Runat="Server">
        <asp:ContentPlaceHolder id="Menux" runat="server">
        </asp:ContentPlaceHolder>
     
        <asp:ContentPlaceHolder id="ContenuSubM2" runat="server">
        </asp:ContentPlaceHolder>
    </asp:Content>
    La page de Menus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <%@ Page Title="" Language="VB" MasterPageFile="~/TEST_NestedMaster/Master2.master" AutoEventWireup="false" CodeFile="MenuPage.aspx.vb" Inherits="TEST_NestedMaster_MenuPage" %>
     
    <asp:Content ID="Content1" ContentPlaceHolderID="Menux" Runat="Server">
        <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal">
            <StaticMenuItemStyle BackColor="Aqua" />
            <StaticHoverStyle BackColor="Orange" />
            <StaticSelectedStyle BackColor="Red" />
            <Items>
                <asp:MenuItem Text="Option1" Value="Option1" NavigateUrl="~/TEST_NestedMaster/SubMaster/ContenuSubM2_FromMenu1.aspx"></asp:MenuItem>
                <asp:MenuItem Text="Option2" Value="Option2" NavigateUrl="~/TEST_NestedMaster/SubMaster/ContenuSubM2_FromMenu2.aspx"></asp:MenuItem>
            </Items>
        </asp:Menu>
    </asp:Content>
    La page de contenu pilotée par le Menu Option1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%@ Page Title="" Language="VB" MasterPageFile="~/TEST_NestedMaster/Master2.master" AutoEventWireup="false" CodeFile="ContenuSubM2_FromMenu1.aspx.vb" Inherits="TEST_NestedMaster_SubMaster_ContenuSubM2" %>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="ContenuSubM2" Runat="Server">
        Ici le contenu de la page Sub du master2 - Menu option 1
    </asp:Content>
    et enfin La page de contenu pilotée par le Menu Option2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%@ Page Title="" Language="VB" MasterPageFile="~/TEST_NestedMaster/Master2.master" AutoEventWireup="false" CodeFile="ContenuSubM2_FromMenu2.aspx.vb" Inherits="TEST_NestedMaster_SubMaster_ContenuSubM2_FromMenu1" %>
     
    <asp:Content ID="Content2" ContentPlaceHolderID="ContenuSubM2" Runat="Server">
        Ici le contenu de la page Sub du master2 - Menu option 2
    </asp:Content>
    Je suppose que la structure des master et subpages sont bonnes, enfin j'espere...
    Lorsque je clik une option de mon menu, cette derniere prend bien les code couleur pour la selection en fonction du style de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <StaticSelectedStyle BackColor="Red" />
    . Ceci fonctionne lorsque je n'ai pas de lien sur les menus options, car cela me permet de voir si les styles sont bien pris par les actions sur le menu.
    J'ajoute donc les "NavigateUrl" dans chaque option.

    Mais là, je me confronte à un problème qui est le suivant :
    Je click sur l'une des option et la page appeler vient remplacer le menu !!! alors que la page appelée devrait aller dans le ContentPlaceHolder (ContenuSubM2) plutôt que dans celui des menus, non !

    Avez-vous une idée ?

    Merci

    Patrick

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Normalement toutes tes master page devraient se remettre...maintenant tu te compliques la vie pour pas grand chose.
    10 ans que je fais de l'ASP.NET et j'ai jamais fais ou vu dans des packages des masters imbriqués l'une dans l'autre.

    Pour moi la structure d'une page en webform c'est :

    • Master : les données et layout qui ne changent pas (donc UNE SEUL master par page)
    • Page : Contient les différentes parties de la vue
    • UserControl : Chaque partie de page est un usercontrol. (main content, onglet, ...)


    Nettement plus simple a maintenir et surtout permet a visual studio d'être plus rapide lors de l'affichage du design...

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Bonjour Dokho1000,
    En effet, probablement que je suis trop nested
    En fait, je voulais que la page Master1 ait un header commun à toutes les autres pages (master ou pas).
    Certaines pages (sans menu) seraient allées dans la Master1 et une page Master2 (dans la master1) permettrai d'avoir un "sous" site avec menu dédiés à de l'édition, création de données...
    Oui, 2 pages Master distinct est la meilleur solution (ce que je vais faire sur ton conseil), mais je suis toujours embêté avec le menu dans la page Master, la selection du menu ne fonctionne pas, voir mon 1er message.
    Si tu as une idée ?
    Merci
    Patrick

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Citation Envoyé par patrickvier Voir le message
    Bonjour Dokho1000,
    En effet, probablement que je suis trop nested
    En fait, je voulais que la page Master1 ait un header commun à toutes les autres pages (master ou pas).
    Certaines pages (sans menu) seraient allées dans la Master1 et une page Master2 (dans la master1) permettrai d'avoir un "sous" site avec menu dédiés à de l'édition, création de données...
    Oui, 2 pages Master distinct est la meilleur solution (ce que je vais faire sur ton conseil), mais je suis toujours embêté avec le menu dans la page Master, la selection du menu ne fonctionne pas, voir mon 1er message.
    Si tu as une idée ?
    Merci
    Patrick
    Effectivement, tu es mieux de faire 2 master distinctes. Pour le menu je n'utilise jamais celui du framework donc je n'ai pas d'idée désolé.

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 166
    Par défaut
    Bonjour Dokho1000
    Merci pour ton aide.
    Je vais voir à me débrouiller avec ce p... de menu.
    J'ai déjà trouvé pas mal de soluces sur le net, mais bizarrement, elles ne fonctionnent pas pour moi.
    J'ai peut être un problème ailleurs
    A bientôt
    Patrick

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer des controles dans une listview imbriquée
    Par ERICLEUN dans le forum ASP.NET
    Réponses: 6
    Dernier message: 12/11/2012, 18h26
  2. Réponses: 1
    Dernier message: 31/03/2012, 22h27
  3. selection de 2-uplet dans une boucle imbriquée
    Par nostress dans le forum Macro
    Réponses: 2
    Dernier message: 16/11/2009, 15h14
  4. [MySQL] menu select dans une page include problème de paramètres
    Par starr dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 07/07/2006, 08h42
  5. faire un selection dans une image aves les APIs
    Par merahyazid dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/04/2002, 10h44

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