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 :

Communication entre UserControl et MasterPage


Sujet :

ASP.NET

  1. #1
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut Communication entre UserControl et MasterPage
    Bonjour

    J'ai une masterPage qui contient un userControl.

    Dans ce userControl je recupère une information que je dois passer à la masterPage, toutefois je n'arrive pas à récupérer la référence de ma masterPage dans mon userControl pour effectuer cette opération.

    Merci d'avance pour votre aide

    Titan

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    La ligne suivante te permet de récupérer la réference vers ta masterpage:
    Attention cependant, dans ce genre de cas de figure on peut rapidement faire des trucs laids!

  3. #3
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Effectivement dans mon formulaire ayant le <asp:Content ID="Content" ContentPlaceHolderID="contentPlaceHolder" Runat="Server"> qui est relié à la masterPage j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            //Reference avec la MasterPage nommé : Tpl_mpMain
            Tpl_mpMain oTpl_mpMain = Page.Master as Tpl_mpMain;
    Toutefois dans mon userControl qui est dans la MasterPage, si je mets la même commande j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	4	Le type ou le nom d'espace de noms 'Tpl_mpMain' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)	...

  4. #4
    Membre éclairé Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Par défaut
    Faut faire des Getters et des Setters des tes propriétés ou controles dans ton User Control

  5. #5
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Vérifie l'orthographe et utilise un max l'autocomplétion, parce que honnetement je ne vois pas pourquoi il ne trouverai pas le type de ta MasterPage. Peut être ton UserControl est il dans un dossier, auquel cas le Namespace est peut être different et dans ce cas il te manque une référence.

  6. #6
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Dans mon userControl j'ai mis le setter suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        private Tpl_mpMain _oTpl_mpMain;
        public Tpl_mpMain oTpl_mpMain
        {
            set { _oTpl_mpMain = value; }
        }
    Mais il ne connait pas la classe Tpl_mpMain qui est le nom de ma MasterPage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	d:\3wCgo\WWW_fil\Usc\ucMenu.ascx.cs(30): error CS0246: Le type ou le nom d'espace de noms 'Tpl_mpMain' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)	D:\3wCgo\Amv_filhetallard\WWW_fil\Frm\content.aspx	1

  7. #7
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    pour seth78

    Ma masterPage se trouve dans le même projet que mon userControl

    le même bout de code (copier/coller)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      private Tpl_mpMain _oTpl_mpMain;
    fonctionne dans mon formulaire héritant de : System.Web.UI.Page

    par contre pas dans mon userControl "class Usc_ucMenu" héritant de System.Web.UI.UserControl


    !!!

  8. #8
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    et en lui préfixant le namespace ?

  9. #9
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    désolé flogreg, je ne comprends pas pour le NameSpace.

    Le userControl ainsi que la MasterPage sont dans le même projet d'une même solution.

    Donc il n'y a pas de NameSpace !

  10. #10
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    Pour en revenir à seth78 et sont
    Dans mon UserControl le code suivant fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MasterPage oMP = this.Page.Master;
    toutefois dans ma masterPage (Tpl_mpMain ) j'ai defini une propriété monTitre.

    Comment puis-je y acceder car je ne vois que this.Page.Master;

  11. #11
    Membre éclairé Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Par défaut
    Citation Envoyé par titan_33 Voir le message
    désolé flogreg, je ne comprends pas pour le NameSpace.

    Le userControl ainsi que la MasterPage sont dans le même projet d'une même solution.

    Donc il n'y a pas de NameSpace !
    J'ai dit une boulette

    Ce ne serait pas le meme problème ==> http://codingforums.com/showthread.php?t=116840

  12. #12
    Membre éclairé Avatar de titan_33
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 245
    Par défaut
    ci-joint une image du debuger qui montre que mes propriétés sont visibles (ex : _sUrlCorpsDefault) dans la Page.Master, mais je ne sais pas comment les récupérer car le transtypage ne fonctionne pas car il ne veut pas reconnaitre ma classe Tpl_mpMain qui contient la masterPage est qui a le getter/setteur _sUrlCorpsDefault

    Images attachées Images attachées  

  13. #13
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Citation Envoyé par titan_33 Voir le message
    Le userControl ainsi que la MasterPage sont dans le même projet d'une même solution.

    Donc il n'y a pas de NameSpace !
    Attention, le fait que les fichiers soient dans une même solution ne signifie pas que toutes les classe soient dans le même namespace. Par exemple si tu crée un dossier MyFolder dans la solution MySolution alors les classes situées à la racine de ta solution seront situées par défaut dans le namespace "MySolution" et les classes créées dans le dossier auront pour namespace par défaut "MySolution.MyFolder". Ainsi dans le code de ta classe situé dans le dossier MyFolder il te faut un "using MySolution;" sans quoi tu ne peut acceder aux classes de la racines.

    Edit: Apres quelques tests je me suis rendu compte que les namespace imbriqués ont une référence implicite vers leur namespace parents, donc ca ne peut pas être ton problème. Mais il faut quand même garder ca a l'esprit quand on crée des dossiers dans Visual Studio!

Discussions similaires

  1. Communication entre usercontrol et page
    Par Dragna_x dans le forum Silverlight
    Réponses: 14
    Dernier message: 31/05/2010, 10h32
  2. communication entre un Form et un UserControl
    Par tmerigon dans le forum C#
    Réponses: 7
    Dernier message: 02/04/2010, 09h28
  3. Communication entre UserControl et winform
    Par topolino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/06/2009, 16h03
  4. Communication entre deux UserControls
    Par Jimmy_S dans le forum Windows Forms
    Réponses: 2
    Dernier message: 25/02/2008, 23h29

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