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

C# Discussion :

ajout dans liste ne fonctionne pas [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut ajout dans liste ne fonctionne pas
    Bonjour,

    J'ai une liste contenant des langues, une classe langue et une classe user.
    Dans ma classe user, il y a la liste de langue pour dire les langues que parle un user.

    Classe User :


    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
    public class User
    {
     
            protected Int u_id=0;
            protected String u_login ="";
            protected String u_name ="";
            protected String u_firstname = "";
     
            protected List<Langues> u_langues = new List<Langues>();
     
             //getter pour liste
             public List<Langues> language
            {
                get { return u_langues; }
            }
    }
    classe Langues :


    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
    public class Langues
    {
            protected Int l_id = -1;
            private String l_name = "";
     
           //getters & setters
            public Int id
            {
                get { return l_id; }
                set { l_id = value; }
            }
     
            public String name
            {
                get { return l_name; }
                set { l_name = value; }
            }
            }
     
            // constructeurs
            public Langues()
            {
            }
     
            public Langues (String name)
            {
                l_name = name;
            }
    }
    Le main de mon formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public partial class main 
    {
            private User _u1;
     
            protected void Page_Load(object sender, EventArgs e)
            {
                _u1 = new User();
            }
     
            protected void bouton_ajout_Click(object sender, EventArgs e)
            {
                _u1.language.Add(new Langues(combo1.SelectedValue));
            }
    }
    Donc dans mon formulaire, j'ai un combobox et un bouton ajout.
    Lorsque je clique sur ajout, j'appelle la méthode "bouton_ajout_Click".
    Mais ma liste reste vide ... pourtant quand je débug, je vois bien que ça prend bien les noms des langues, et ça me met liste.count() à 1.
    Mais ensuite, lorsque j'essaie de parcourir ma liste, elle est vide.
    Je précise que le bouton_ajout n'est pas le bouton de validation du formulaire, mais un autre bouton dans le formulaire, qui permet de remplir ma liste : à chaque fois qu'on clique dessus, la langue sélectionnée dans le combobox s'ajoute à la liste.

  2. #2
    Invité
    Invité(e)
    Par défaut
    C'est normal, Il faut que tu places ta liste dans un UpdatePanel et que tu fasses un UpdatePanel.update(), pour que ta liste soit mise à jour.

    Dans ton cas tu mets à jour ta liste coté serveur, mais sans renvoyer au client la valeur de ta nouvelle liste.

  3. #3
    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 : 42
    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
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Devlin111 Voir le message
    Mais ma liste reste vide ... pourtant quand je débug, je vois bien que ça prend bien les noms des langues, et ça me met liste.count() à 1.
    Mais ensuite, lorsque j'essaie de parcourir ma liste, elle est vide.
    la seule explication que je vois, c'est que la liste que tu parcoures n'est pas celle à laquelle tu as ajouté un élément... peux-tu montrer le code où tu parcoures la liste ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Non, Tomlev, je parcours bien la bonne liste, ça c'est sûr
    En fait je ne peux pas te mettre la méthode car il y en a plusieurs, dans plusieurs classes différentes, mais par exemple, dans ma classe User, lorsque j'appelle ma méthode "Ajouter_langues" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _u1.ajouter_langues(_u1.id, _u1.language);
    Rien que là, lors du débug, la liste est à count = 0 ...
    Aucune exception n'est levée alors que je fais tout dans des try/catch.

    gcorbineau, c'est quoi un UpdatePanel?

  5. #5
    Invité
    Invité(e)
    Par défaut
    L' UpdatePanel fait partie l'ajaxcontrolToolkit, il permet de mettre à jour le coté client sans renvoyer l'intégralité de la page.

    Regarde sur MSDN (Lien UpdatePanel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Désolé, mais je n'ai pas tout compris en lisant.
    En fait, je ne vois pas comment ce contrôle pourrait me permettre de mettre à jour ma liste ?

    Quelqu'un pourrait m'expliquer de manière simple comment ça fonctionne, ou me montrer un exemple?

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    On va supposer que c'est une application web (du fait du page_load, mais tu aurais pu le préciser pour nous éviter de jouer aux devinettes).

    Donc, c'est normal que cela ne marche pas, car tu réinstancies ta classe User à chaque rechargement de la page.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Bonjour Bluedeep,

    Oui, c'est bien une application web, désolé, je n'ai pas pensé à le préciser.
    Pour l'instanciation du user, j'ai changé, mais ça se comporte toujours de la même manière .

    J'ai vraiment besoin de votre aide là, je suis bloqué, et je ne comprend pas.
    A chaque fois que je clic sur le bouton, ca m'ajoute bien un élément à ma liste puisque count() est à 1, mais lorsque je reclique, ca me rajoute le nouvel élément avec count() toujours à 1, comme si la liste était de nouveau vide et qu'il n'avait pas gardé l'élément ajouté avant.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Je ne comprend pas Ça ajoute dans ma liste et puis au clic suivant ça rajoute encore, mais toujours à la position 0 de la liste qui n'a pas mémorisé l'élément d'avant .... Je désespère

  10. #10
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Devlin111 Voir le message
    Je ne comprend pas Ça ajoute dans ma liste et puis au clic suivant ça rajoute encore, mais toujours à la position 0 de la liste qui n'a pas mémorisé l'élément d'avant .... Je désespère
    Où stocke tu l'instance de User entre deux appels à la page ? visiblement, tu as perdu de vue que la page est réinstanciée entre deux appels.
    Si tu veux garder ton instance de User, tu dois conserver, par exemple dans une variable de session (mais comme on ne sait pas ce que tu veux faire et le nombre d'instance de User que tu veux avoir - 1 par session, 1 pour tous les utilisateurs ??? - on ne peut pas répondre à ta place).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Je débute en C# ...
    Je veux une instance par utilisateur ...
    Que dois-je ajouter à mon code stp?

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Devlin111 Voir le message
    Je débute en C# ...
    Je veux une instance par utilisateur ...
    Que dois-je ajouter à mon code stp?
    Ca dans l'event handler Page_Load :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    _u1 = (User)Session["UserData"];
    if(_u1 == null)
    {
       _u1 = new User();
       Session["UserData"] = _u1;
    }
    Et lire un tuto sur asp.net (y'en a plein sur le site) car sinon, tu vas pas avancer.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    C'est bon !
    Mille mercis !

    J'ai déjà lu quelque tutos, mais il n'y a pas de tuto "général" si je puis dire, ils sont tous sur un point précis, alors quand on débute et qu'on a un problème, il faut savoir où chercher ...

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Devlin111 Voir le message
    C'est bon !
    Mille mercis !

    J'ai déjà lu quelque tutos, mais il n'y a pas de tuto "général" si je puis dire, ils sont tous sur un point précis, alors quand on débute et qu'on a un problème, il faut savoir où chercher ...

    Introduction à ASP.NET
    par exemple.

    Et n'oublies pas le bouton

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 105
    Points : 40
    Points
    40
    Par défaut
    Génial pour le tuto, merci

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

Discussions similaires

  1. [MySQL] ajout et modif ne fonctionne pas dans page admin
    Par kate59 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/06/2009, 00h42
  2. [VBA-E] SetFocus sur TextBox dans UserForm_Initialize ne fonctionne pas ?
    Par Jipété dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/11/2006, 11h39
  3. Ajout dans liste deroulante
    Par Renardo dans le forum Access
    Réponses: 6
    Dernier message: 04/08/2006, 23h42
  4. Réponses: 23
    Dernier message: 07/02/2006, 08h43
  5. ajout dans liste (syntaxe SQL)
    Par dr_feelgood dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 20/10/2005, 20h05

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