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 :

[Debutant] Ajout et conservation d'éléments dans une Liste sous une procédure


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut [Debutant] Ajout et conservation d'éléments dans une Liste sous une procédure
    Bonjour,

    J'utilise une liste dans une webpart afin de stocker des éléments choisi pour un utilisateur.

    J'ai créé la liste en amont de la procédure (au début de l'initialisation de la Webpart) ; elle est de type String.

    Lors d'un click sur un bouton, j'exécute une procédure dans laquelle je rajoute des éléments dans ma liste à l'aide de la commande list.add("toto") (toto est pour exemple, dans mon code il s'agit d'une variable de type STRING).

    Ensuite, toujours dans ma procédure, je traite chaque élément de ma liste avec le code suivant :

    foreach (string user in liste) test += user ; (test est une variable de type string)

    La première fois que je clique sur mon bouton, tout est OK, en revanche, lors des cliks suivant, ma liste ne comprend que le dernier enregistrement ajouté, et non tous les éléments ajoutés précédemment.

    J'ai fais un count des éléments de ma liste en début de procédure (avant le list.add), et je m’aperçois que ma liste comprend 0 enregistrement à cuaque click sur mon bouton ; c'est comme si en fin de procédure, elle était vidée ==> Pourquoi et comment puis-je faire pour conserver tous les enregistrements ajoutés ?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Il faut bien comprendre qu'à chaque action en ASP.Net, que ca soit un clic ou autre, y'a tout qu'est réexecuté depuis le debut. On dit qu'ASP.Net est stateless. Comme un poisson rouge qui tourne dans un bocal!
    Pour se souvenir d'ou on en était, il faut utiliser un stock d'état comme les sessions, le viewstate, le cache, etc.

    A mes débuts dans l'informatique pro, on m'a posé pour un entretien de stage "HTTP est il un protocole connecté ou déconnecté?". Comprendre et savoir répondre à la question permet de développer REELLEMENT en ASP.Net (et non pas faire un bidouillage horrible qui serait un portage de winform vers webform)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci de votre réponse.

    Ceci explique celà .........

    Dans mon cas, au vu de votre expérience, vous utiliseriez plutôt quelle méthode de stockage (sachant que c'est effectivement pour une utilisation sur du Sharepoint) ?

    Merci.

  4. #4
    Membre confirmé Avatar de elbj
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Services à domicile

    Informations forums :
    Inscription : Novembre 2004
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Bonjour

    Je ne sais pas si Sharepoint a des comportements particuliers vis à vis du ViewState mais en ASP.NET pur moi je fais ça :

    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
     
    private List<string> _maListe;
     
    private List<string> MaListe
    {
      get
      {
        if(_maListe == null)
        {
          if(ViewState["MaListe"] != null)
          {
            _maListe = (List<string>)ViewState["MaListe"];
          }
          else
          {
            _maListe =new List<string>();
          }
        }
        return _maListe;
      }
      set
      {
        _maListe = value;
        ViewState["MaListe"] = value;
      }
    }
    A partir de là tu as une variable persistante. Tu peux utiliser MaListe pour y stocker tes strings et aller itérer dessus ensuite.

    Cordialement

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    J'ai résolu mon problème.

    Je me sers d'un listbox pour "stocker" mes éléments.
    Je cache cette dernière et pour le moment ça semble fonctionner.

    Ce n'est surement pas optimiser, mais bon ...

    Merci

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

Discussions similaires

  1. [Lisp][IA] Supprimer une liste d'une liste de listes
    Par Superleo2999 dans le forum Lisp
    Réponses: 5
    Dernier message: 22/03/2010, 10h51
  2. champ d'une liste lié à une liste dans un autre site
    Par guintolli dans le forum SharePoint
    Réponses: 8
    Dernier message: 08/07/2008, 14h51
  3. Réponses: 12
    Dernier message: 12/09/2007, 16h28
  4. STL : retirer une liste d'une liste
    Par DEVfan dans le forum SL & STL
    Réponses: 13
    Dernier message: 05/01/2007, 20h49

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