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 :

[C#][ComboBox] Comment sélectionner un élément à partir d'un ID ?


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut [C#][ComboBox] Comment sélectionner un élément à partir d'un ID ?
    Bonjour,

    j'ai un problème (simple je pense) mais je chipote depuis un petit temps...
    J'ai une combobox que je lie à une datasource ou myTable est une datatable avec les champs "NAME" et "ID":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    this.cbox_TYPE.DataSource = myTable;
    this.cbox_TYPE.DisplayMember = "NAME";
    this.cbox_TYPE.ValueMember = "ID";
    et ça se remplit bien
    par contre je voudrais sélectionner une valeur dans cette combobox. Je récupère en fait l'élement via une requete sql et j'obtient un record avec "ID_TYPE" qui correspond à un des ID de la combobox (logique)
    mais ce n'est pas le même objet donc je ne peux pas directement assigner cet élément à this.cbox_TYPE.SelectedValue
    Comment faites-vous pour arriver à sélectionner un élément de la combobox sur base de l'ID_TYPE récupéré ? (je crains que ce soit trop évident )

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    je sais pas si c'est evident mais d'une part tu as une collection et d'autre part une valeur repere
    donc enumère ta collection en comparant ID et ta valeur
    si c'est ok alors item en cours deviens le selecteditem et fin de l'enumération
    J'espère avoir compris ce que tu voulais, car j'ai fait vite
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut
    yep je pense bien
    j'étais en train de m'orienter vers ça mais c'est pas des plus beau :'(
    je teste (et je mets résolu... ou pas)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut
    bon ben voilà si personne n'a mieux à proposer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    foreach(DataRowView dv in this.cbox_TYPE.Items)
    {
    	if(dv.Row["ID"].Equals(row["ID_TYPE"])) this.cbox_TYPE.SelectedItem = dv;
    }
    merci

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    tu peux optimiser en evitant de lire toute la collection si c ok
    il existe peut être aussi une méthode avec un ienumerator (à voir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    string id;
    string repere = row["ID_TYPE"];
    IEnumerator lecteur = this.cbox_TYPE.Items.GetEnumerator();
    lecteur.Reset();
    while (lecteur.MoveNext())
      { 
        id = ((DataRowView)lecteur.Current).Row["ID"].ToString();
        if(id.Equals(repere))
          {
              this.cbox_TYPE.SelectedItem = lecteur.Current; 
              break;
          }
      }
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 141
    Points : 139
    Points
    139
    Par défaut
    yep c clair, je peux aussi rajouter un break dans mon code
    (mais c mal de faire un break )

  7. #7
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Wavyx
    yep c clair, je peux aussi rajouter un break dans mon code
    (mais c mal de faire un break )
    Ben tu peux utiliser aussi un booleen à la place et ajouter sa verif dans while
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

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

Discussions similaires

  1. ComboBox Comment les configurer?
    Par parp1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 24/05/2007, 12h42
  2. Réponses: 2
    Dernier message: 01/12/2006, 14h50
  3. [C#] ComboBox: comment le rendre non éditable?
    Par therock dans le forum Windows Forms
    Réponses: 3
    Dernier message: 28/06/2006, 15h59
  4. [VB.Net 2.0][ComboBox]Comment mettre plusieurs colonnes?
    Par bataj dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/03/2006, 12h37

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