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 :

[C#] Soucis pour utiliser un objet de ma Master à ma Content


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut [C#] Soucis pour utiliser un objet de ma Master à ma Content
    Bonjour,

    J'ai une masterpage et une content page. Sur ma MasterPage (TheTemplate.master) j'ai une classe perso (myUser) instanciée qui contient toutes les données du visiteur (loggé ou non). La classe comporte son nom, email, etc.

    Ma Content page Default.aspx veut avoir accès à cet objet et à ses propriétés (nom, email, etc.)! Donc j'ai procédé comme cela.

    Default.aspx (design)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <%@ Page Language="C#" MasterPageFile="~/TheTemplate.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
    <%@ MasterType VirtualPath="~/TheTemplate.master" %>
    Default.aspx.cs (code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public partial class _Default : System.Web.UI.Page
    {
        public TheTemplate tpl;
        public myUser visiteur;
     
        protected void Page_Load(object sender, EventArgs e)
        {
            tpl = (TheTemplate)Master;
            visiteur = tpl.user; // 'user' est l'objet que je souhaite récupérer
     
            Literal1.Text = monuser.Fullname;
        }
    }

    TheTemplate.aspx.cs
    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
    public partial class TheTemplate : System.Web.UI.MasterPage
    {
        public myUser user;
     
        protected void Page_Load(object sender, EventArgs e)
        {
            user = (myUser)Session["User"];
            if (user != null)
            {
                // logged in
            }
            else
            {
                // logged out
                user = new myUser();
            }
            user.Fullname = "ANONYMOUS TEST";
        }
    }
    Quand je démarre ma page Default.aspx j'ai une erreure sur la ligne "Literal1.Text = monuser.Fullname;" or que mon objet existe bien dans ma MasterPage car je peux lire/modifier sans soucis dans ma master, c'est uniquement par ma Content page que ca coince. Voici l'erreur :
    Object reference not set to an instance of an object.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 47
    Par défaut
    Mets voir des breakpoints dans le page_load de ta master page et ta default page. J'ai le vague souvenir que la master page est chargée en dernier. Si je me trompe pas, alors ça explique ton problème.

  3. #3
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    null
    "ANONYMOUS - TEST"
    The thread 0xb1c has exited with code 0 (0x0).
    Effectivement, ca expliquerait le soucis. J'ai mis les breakpoints et on voit bien que la Content page est chargée en première donc on a le "null" puis ensuite le breakpoint de la MasterPage affiche bien le nom.

    C'est embêtant.. Vous auriez une solution ou une parade?

  4. #4
    Membre confirmé
    Profil pro
    Webmaster
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Par défaut
    J'ai résolu mon problème (event LoadCompleted).
    Voici le bout de code très siplifié si ca peut aider!

    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
    public partial class _Default : System.Web.UI.Page
    {
        myUser User;
     
        protected void Page_Load(object sender, EventArgs e)
        {
            this.LoadComplete += new EventHandler(Page_LoadComplete);
        }
     
        protected void Page_LoadComplete(object sender, EventArgs e)
        {
            User = Master.user;
            Literal1.Text = User.Fullname;
        }
    }
    Je pense pas que l'on puisse faire plus propre? Voilà, merci à tous quand même!

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

Discussions similaires

  1. lookat, soucis pour orienter un objet avec lookat
    Par dark poulpo dans le forum OpenGL
    Réponses: 4
    Dernier message: 18/02/2013, 14h24
  2. Soucis pour utiliser max(date)
    Par BZH75 dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/06/2008, 16h48
  3. Souci pour comparer deux objets avec equals()
    Par xillibit dans le forum Langage
    Réponses: 7
    Dernier message: 30/09/2007, 15h41
  4. Utilisation d'objets pour imprimer
    Par alainvh dans le forum Composants VCL
    Réponses: 3
    Dernier message: 02/12/2004, 10h25
  5. utilisation d'objets ADO pour CMS sur POSTGRESQL7.3.2
    Par turbok dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 10/10/2003, 09h29

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