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 :

[debutant] contrôle des elements d'une master page depuis une autre page


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Par défaut [debutant] contrôle des elements d'une master page depuis une autre page
    Bonjour,

    Voici le contexte :
    Mon site repose sur une master page contenant header,menu et en-tête et un corps avec un ContentPlaceHolder.
    Le site dispose d'un système d'authentification basé sur MemberShipProvider.
    Et la problématique :
    Je voudrais dynamiser le menu de ma master-page avec une zone apparente uniquement si l'utilisateur est authentifié.

    Une idée ?

    Cordialement,

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'as le control LoginView fait pour ça.
    Il propose 2 templates: <LoggedInTemplate> et <AnonymousTemplate>

  3. #3
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Je ne sais pas si c'est cela que tu veux faire mais pour récupérer les controles serveur de ta masterpage au niveau d'une page fille, il faut que tu rajoutes
    <%@ MasterType VirtualPath="~/MasterRapport.master" %>
    en dessous de la directive <%@page ....> dans le virtualpath tu rentres le nom de ta masterpage.

    DAns le code behind de ta page il suffit de faire 1 this.Master. ... et les éléments seront disponibles.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Par défaut
    Merci de votre aide,

    lutecefalco,
    Mon menu est composé de plusieurs sections. (le tous en css)
    j'utilises le contrôle LoginView dans la premiere section de mon menu.
    Mais je souhaite faire apparaitre d'autres elements de menu si je suis connecté.
    Cette méthode m'obligerai à placer tous le reste de mon menu dans le LoggedInTemplate. Mais peut-être que je pars d'une mauvaise architecture...

    tortuegenie,
    Ce que tu decris est ce que je cherche à faire, mais après avoir suivi tes indications, je n'ai ps accès aux elements de ma masterpage (l'element en question est un panel contenant le menu des membres).
    this.master.nom_du_panel est inconnu..

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Si tu utilises un web.sitemap, il suffit d'appliquer des roles à chaque item et le menu s'adaptera automatiquement aux roles de ton user

  6. #6
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    As tu bien mis la directive <%@ MasterType %> dans ta page fille??

    Ensuite si tu utilises Visual Studio comme environnement de développement, il faut que tu génères la page master.aspx ainsi que ta page fille.aspx et après tu y a accès enfin moi je fais comme cela et ça fonctionne.

    En fait this.Master te donne accès au méthode seulement je crois.
    Si tu veux récupérer les éléments tu peux essayé soit un findControl() ou alors tu rédéfinis tes objets dans le code behind de la master.
    Par exemple pour un hyperlink:
    public partial class MasterPage : System.Web.UI.MasterPage
    {
    public HyperLink HlHomme
    {
    get
    {
    return this.hlHomme;
    }
    }
    }
    Ensuite tu utilises l'objet que tu viens de créer dans ta page fille.

    J'espère que tu as compris, sinon google est ton amis aussi.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 61
    Par défaut
    lutecefalco,
    "Si tu utilises un web.sitemap, il suffit d'appliquer des roles à chaque item et le menu s'adaptera automatiquement aux roles de ton user"
    et ensuite je dois utilisé le contrôle Menu.. mais je ne pourrais pas conserver ma présentation actuelle (structure des menus en css, boutons ...) ?

    tortuegenie,
    "As tu bien mis la directive <%@ MasterType %> dans ta page fille??"
    Oui
    "En fait this.Master te donne accès au méthode seulement je crois."
    J'ai déclaré une méthode en public dans ma master page mais je ne la vois pas avec this.master.nom_methode.
    "tu rédéfinis tes objets dans le code behind de la master."
    Comment peut-on supprimer l'ancienne définition, je ne la vois pas sous VS2005.

    Merci à vous,

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2010, 10h02
  2. Réponses: 0
    Dernier message: 06/10/2009, 13h02
  3. Réponses: 6
    Dernier message: 16/12/2008, 16h31
  4. Réponses: 6
    Dernier message: 27/01/2008, 21h04
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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