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

VB.NET Discussion :

Identifiant dans les listes


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Par défaut Identifiant dans les listes
    Bonjour,

    J'ai dans la base de données une liste de personnes chacune à son identifiant. C'est avec cet identifiant que je fais le lien avec les autres tables.

    Quand j'extrait une partie de cette liste pour l'afficher dans une listebox (ou combobox), par habitude depuis VB6 j'ajoute les éléments un a un et pour chaque ligne ajoutée je crée un tag au même index avec l'identifiant de ce nom.
    Ainsi quand l'utilisateur sélectionne une personne dans la liste j'ai directement dans le tag l'identifiant pour effectuer d'autres actions, recherche d'adresse par exemple.

    Est qu'il y a un autre moyen de faire ça plus simplement ?

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    .net est orienté objet, si tu une classe genre Person c'est l'objet entier qu'on met dans le listbox, on préciser qu'il faut afficher telle propriété seulement, et SelectedItem est alors un person donc on peut le caster et récupérer son Id
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 987
    Par défaut
    En complément de Pol63.

    La pratique la plus simple et qui est largement utilisée consiste à utiliser la propriété DataSource de la ListBox pour la peupler et les propriété DisplayMember/ValueMember.
    Dans cet exemple, c'est liée à un DataSet mais cela fonctionne avec une simple List<T>.
    https://docs.microsoft.com/fr-fr/dot...orkdesktop-4.8

    Pour l'affichage, tu peux soit redéfinir la méthode ToString de ton objet, soit affecter la valeur DisplayMember
    https://docs.microsoft.com/fr-fr/dot...tframework-4.8

    Pour récupérer le code lors de la selection, il suffit d'affecter la propriété ValueMember
    https://docs.microsoft.com/fr-fr/dot...tframework-4.8

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Par défaut
    Bonjour,
    J'ai un peu trainer à répondre parce que les données que j'affiche proviennent d'un webservice et j'ai eu un peu de mal a désérialiser la réponse Json.

    Du coup j'ai créé un dataset avec les données du fichier Json j'ai associé à ma listbox, j'ai défini le DisplayMember avec le nom et le ValueMember avec l'identifiant.

    et je récupére bien mon id avec le SelectedValue merci popo.

    J'en ai une deuxième à utiliser dans les mêmes conditions, je vais tester la solution de Pol63.

    Merci.

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 987
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 987
    Par défaut
    Comme je l'ai précisé, cela fonctionne aussi avec un simple List<T>.

    Pourquoi te compliquer la vie en créant un DataSet alors que la serialisation du Json te renvoie directement une collection utilisable ?

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 351
    Par défaut
    Bonjour Popo,

    Je n'ai pas trouvé comment affecter directement le JsonDoc a la liste<T> du coup en déclarant un class, puis une list<T> de cette classe puis une boucle pour ajouter les éléments json dans la list<T> ça ne me parrait pas plus simple qu'avec un Dataset.

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

Discussions similaires

  1. Double pointeurs dans les listes chainées
    Par NouK32 dans le forum Débuter
    Réponses: 8
    Dernier message: 10/02/2008, 18h19
  2. Réponses: 3
    Dernier message: 29/06/2007, 15h29
  3. [XUL] Comportement des images dans les listes item
    Par Christophe Charron dans le forum Autres langages pour le Web
    Réponses: 1
    Dernier message: 02/03/2007, 12h50
  4. Réponses: 7
    Dernier message: 22/10/2005, 19h20

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