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 :

Comment accèder à une instance d'un objet depuis d'autres pages web


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
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Comment accèder à une instance d'un objet depuis d'autres pages web
    J'ai un problème,
    j'ai une master page dans laquelle j'ai 2 pages web.
    La premiere page crée (dans le code-behind) une instance d'un objet (disons devis1 qui est une instance de la classe Devis).
    Cette page modifie cette instance, ça ça marche.

    Le problème est que je veux accèder depuis la deuxième page à cette instance d'objet. Impossible de voir cette instance d'objet depuis aucune page!

    J'ai essayé de créer l'instance de l'objet dans la master page, mais impossible ici encore d'accéder à l'objet depuis les autres pages web (leur code-behind).

    En gros, voici le code:

    PAGE 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    using Devis01.App_Code;
    namespace Devis01
    {
       public partial class frmContenu01 : System.Web.UI.Page
        {
           protected void Page_Load(object sender, EventArgs e)
            {
                Devis devis1 = new Devis(0,"instance1");
                Devis1.Nom="essai1";
             }
    PAGE 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    using Devis01.App_Code;
    namespace Devis01
    {
       public partial class frmContenu02 : System.Web.UI.Page
        {
           protected void Page_Load(object sender, EventArgs e)
            {
                       //IMPOSSIBLE D'ACCEDER A Devis1 !!!!!!!!!!!!
                       txtBox.Text = Devis1.Nom.ToString();
     
             }
    Merci par avance.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Salut,

    Tu déclares devis1 comme variable locale dans une méthode, donc cette variable n'existe que dans cette méthode. Si tu veux pouvoir y accéder à partir d'une autre méthode (sans même parler d'une autre classe), il faut que ce soit un membre de la classe, pas une variable locale. Et pour y accéder à partir de frmContenu02, il faudrait que dans frmContenu02 tu aies une référence vers une instance de frmContenu01 (ce qui, fonctionnellement, n'a pas vraiment de sens vu que frmContenu02 est une page web...)

    En plus, un truc me semble bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                Devis devis1 = new Devis(0,"instance1");
                Devis1.Nom="essai1";
    Les noms de variables sont case-sensitive, donc devis1 et Devis1 sont 2 variables différentes...


    La bonne solution est de stocker l'objet Devis dans la session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session["Devis"] = new Devis(....);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Merci beaucoup
    Merci,

    A priori, le "Session["devis1"] = new Devis.App_Code.Devis(0,"nouveau_devis");" ne peut être placé que dans la page Default.aspx.cs.
    Sinon le mot "Session" n'est pas reconnu.
    Je ne sais pas pourquoi.
    En tout cas, ça marche avec le Default, merci.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par david4444 Voir le message
    Merci,

    A priori, le "Session["devis1"] = new Devis.App_Code.Devis(0,"nouveau_devis");" ne peut être placé que dans la page Default.aspx.cs.
    Sinon le mot "Session" n'est pas reconnu.
    Je ne sais pas pourquoi.
    En tout cas, ça marche avec le Default, merci.
    En fait ça devrait marcher dans n'importe quelle page aspx : toutes les pages héritent de la classe Page, qui a une propriété Session...
    Pour y accéder à partir d'un code qui n'est pas dans une page, tu peux faire HttpContext.Current.Session (namespace System.Web)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut
    Oui,
    c'est juste, cela marche partout, je ne comprend pas ce que j'ai fait (peut-etre que j'ai essayé hativement et que je l'ai placé dans la classe du code-behind mais en dehors d'une méthode.

    Merci.

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

Discussions similaires

  1. Obtenir une instance d'un objet depuis une dll
    Par blazed dans le forum Langage
    Réponses: 6
    Dernier message: 07/01/2013, 22h28
  2. Réponses: 15
    Dernier message: 30/04/2008, 16h50
  3. [D7] Comment accéder à une Form depuis son nom ?
    Par dacid dans le forum Langage
    Réponses: 7
    Dernier message: 17/12/2007, 08h52
  4. Comment accéder à une DLL COM depuis un exécutable ?
    Par Denys dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 20/09/2005, 08h04

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