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

Windows Forms Discussion :

comment utiliser un DataGridViewComboBoxColumn ?


Sujet :

Windows Forms

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 72
    Points : 72
    Points
    72
    Par défaut comment utiliser un DataGridViewComboBoxColumn ?
    Salut

    Je voudrais utiliser des DataGridViewComboBoxColumn qui se filtrent mutuellement (la première DataGridViewComboBoxColumn conditionne le résultat de la seconde, etc...). Les DataGridViewComboBoxColumn pointent sur des DataSet structurés comme suit :
    IdDonnée,
    LibelleDonnée

    Le pb est que je n'arrive pas du tout à manipuler les DataGridViewComboBoxColumn, j'ai en permanence des erreurs qu'il faudrait que je traite avec l'evenement DataError.
    Est-ce que quelqu'un peut m'expliquer le fonctionnement des DataGridViewComboBoxColumn ? ValueMember, DisplayMember, DataPropertyName et tout le toutim ?
    Comment faire pour récupérer l'identifiant d'une valeur sélectionnée dans un DataGridViewComboBoxColumn ?
    Comment faire pour initialiser mon datagridView qui contient des DataGridViewComboBoxColumn ?

    Merci de votre aide
    Oliv.

  2. #2
    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 olive-andre Voir le message
    Est-ce que quelqu'un peut m'expliquer le fonctionnement des DataGridViewComboBoxColumn ? ValueMember, DisplayMember, DataPropertyName et tout le toutim ?
    C'est le même principe qu'avec un ComboBox, il faut définir les propriétés suivantes :
    - DataSource : la source de données pour les éléments de la liste (en général une DataTable, une DataView, ou une liste d'objets)
    - DisplayMember : la colonne qui contient le texte à afficher dans la liste (ou la propriété à afficher, si DataSource est une liste d'objets). Dans ton exemple, "LibelleDonnée"
    - ValueMember : la colonne (ou la propriété) qui permet d'identifier un élément de la liste. Dans ton exemple, "IdDonnée".

    DataPropertyName est une propriété commune à tous les types de colonne. C'est la colonne (ou la propriété) de l'objet correspondant à la ligne du DataGridView qui est affichée dans cette colonne. Donc, si dans la source de données du DataGridView, tu as une colonne IdDonnée, le combobox dans cette colonne sélectionnera l'élément qui correspond à cette valeur.

    Citation Envoyé par olive-andre Voir le message
    Comment faire pour récupérer l'identifiant d'une valeur sélectionnée dans un DataGridViewComboBoxColumn ?
    C'est la propriété Value de la cellule

    Citation Envoyé par olive-andre Voir le message
    Comment faire pour initialiser mon datagridView qui contient des DataGridViewComboBoxColumn ?
    En général on fait ça avec le designer, mais tu peux créer une instance de DataGridViewComboBoxColumn, définir les propriétés mentionnées plus haut, et l'ajouter à la collection de colonnes du DataGridView.


    Citation Envoyé par olive-andre Voir le message
    Je voudrais utiliser des DataGridViewComboBoxColumn qui se filtrent mutuellement (la première DataGridViewComboBoxColumn conditionne le résultat de la seconde, etc...)
    Là ça se complique un petit peu... ça me semble possible, mais j'ai jamais testé. Normalement, on définit la DataSource de la ComboBox pour toute la colonne, donc par défaut c'est la même sur toutes les lignes. Mais DataGridViewComboBoxCell (la classe qui correspond à une cellule dans une DataGridViewComboBoxColumn) a aussi une propriété DataSource, donc tu dois pouvoir la modifier... par exemple, en lui affectant une DataView qui filtre la DataTable en fonction de la valeur d'une autre colonne

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    J'ai à peu près le même problème, à ceci près que j'utilise un seul comboBox à associer avec des colonnes TextBox de mon dataGridView.

    Voici mon problème :

    J'ai un dataGridView qui est Bindé sur une table de cette structure :
    - IdData
    - IdMesure
    - IdDate
    - Value

    J'aimerais remplacer les IdMesure et IdDate par leur "Tag" de leur table correspondante, tout en conservant les Id pour le traitement. J'ai donc rajouté une colonne de type ComboBox, que j'ai bindé à ma Table Mesure (pour remplacer IdMesure), avec les paramètres suivants :
    - DataPropertyName : IdMesure
    - DataSource : MesureBindingSource (qui est bindé sur la table Mesure de mon dataSet)
    - DisplayMember : Tag (colonne Tag de la table Mesure)
    - ValueMember : IdMesure (de la table Mesure)

    Cela compile, mais lève une erreur à l'exécution, disant que le contenu de la colonne est invalide.

    Où ais-je mal fait les choses? S'il manque une précision, je les donnerais en fonction de ce que vous aurez besoin.

    Merci d'avance pour vos réponses.

    Cordialement,
    Feadin

    EDIT : en bindant la DataSource de MesureBindingSource, cela fonctionne un peu mieux!
    -> Je n'ai plus d'erreur, mais la DataGridViewComboBoxColumn reste vide.

    EDIT bis : Problème résolu! Confusion dans les différentes sources de mon projet, Remplissage des tables après Binding, et autres erreurs d'inattention...
    Désolé.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. Comment utiliser un cache ?
    Par TOM-Z dans le forum XMLRAD
    Réponses: 4
    Dernier message: 14/03/2003, 09h55
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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