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 :

List qui se vide en sortie de procédure [Débutant]


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
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut List qui se vide en sortie de procédure
    Bonjour,

    Oui encore moi, mais j'ai quelque peine sur les problèmes les plus simple et impossible de trouver de solution à chaque fois..

    Voici mon code:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    public struct Etiquette
        {
            public string code;
            public string dési1;
            public string dési2;
            public string dési3;
            public string zone;
            public string rack;
            public string etagere;
        }
        public partial class MainPage : System.Web.UI.Page
        {
            List<Etiquette> ListeFinal =new List<Etiquette>();
         [...]
           public void remplirListeArt(ref List<Etiquette> ListeFinal)
            {
            [...]
                        LArt.dési1 = ListFinal.GetString(4).ToString();
                        LArt.code = ListFinal.GetString(3).ToString();
                        LArt.dési2 = ListFinal.GetString(5).ToString();
                        LArt.dési3 = ListFinal.GetString(5).ToString();
                        LArt.zone = ListFinal.GetString(0).ToString();
                        LArt.rack = ListFinal.GetString(1).ToString();
                        LArt.etagere = ListFinal.GetString(2).ToString();
                        ListeFinal.Add(LArt);
                    }
                    i++;
                }
                conn.Close();
            }
       }
    Voila, donc j'arrive à remplir ma liste aucun problème, seulement lorsque je souhaite utiliser cette même liste dans une autre procédure la liste est vide, pourtant je l'initialise bien dans le main de ma page.

    Je suppose que ca doit être encore une erreur bête mais je ne la trouve pas

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par FruitSellers Voir le message
    pourtant je l'initialise bien dans le main de ma page.
    Qu'est-ce que tu appelles le "main de ta page" ? Il n'y a pas de "main" en ASP.NET...

    A mon avis c'est juste un problème de gestion du cycle de vie de la page, il faut le faire au bon moment : ASP.NET Page Life Cycle Overview.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut
    D'accord, ça veut dire que lorsque la page se recharge, toutes les variables se réinitialisent?

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Tout à fait, l'état des variables n'est pas conservé lors du rechargement d'une page (PostBack), d'où le fait que ta liste soit vide

    Il faut donc que tu appelles ta méthode remplirListeArt dans l'évènement Page_Load par exemple, en faisant quelque chose de ce genre :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)    // On ne rentre là-dedans que lors du premier chargement de la page
        {
            // Ensuite on remplit la liste, il faut donc bien l'avoir initialisée au préalable
            this.remplirListeArt(ListeFinal);
        }
    }
    A voir selon ton besoin, mais ça te donne déjà l'idée...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 63
    Par défaut
    Alors, je viens d'essayer ce que tu m'as proposé, la liste se vide toujours.

    D'autant que maintenant avec ma procédure pour remplir la liste dans le Page_Load se lance des le démarrage.

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Oui après il faut adapter à ton cas, j'ai juste donné un exemple

    Il faut noter que quand tu initialises ton membre directement, comme ceci :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public partial class MainPage : System.Web.UI.Page
    {
        List<Etiquette> ListeFinal =new List<Etiquette>();
        ...
    }
    A chaque fois, cela va vider ta liste... Donc il faut peut-être déplacer l'initialisation dans l'évènement Init par exemple...

    Si tu veux plus d'aide, il va falloir que tu détailles ton besoin...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/06/2010, 09h25
  2. [AC-2003] Colonne qui apparait vide dans liste
    Par nicburger dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/04/2009, 10h49
  3. Réponses: 1
    Dernier message: 22/02/2009, 19h34
  4. [AJAX] 3 liste lièes en Ajax dont une qui reste vide
    Par mimotin dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 19/08/2008, 20h40
  5. Réponses: 1
    Dernier message: 23/04/2007, 19h19

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