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 :

DatagridViewComboBox liée à une DataTable


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut DatagridViewComboBox liée à une DataTable
    Et oui, je sais, encore un sujet avec cet objet complexe qu'est le combobox intégré au DataGridView...

    J'ai vérifié au préalable si le problème a déjà été rapporté, mais je n'ai rien vu de proche à ma problématique... :

    1) Mon DataGridView (lié à un DataSource) contient une colonne créée manuellement, de type ComboBox. Cette comboBox est remplie dynamiquement selon des options préalables. La première ligne contient un texte de type '"veuillez choisir...", les lignes suivantes sont alimentées en fonction de ces options. Il y a donc toujours au moins une ligne dans la combo même si aucune option n'est activée.

    2) Le remplissage de cette combo se fait via une datatable créée dynamiquement avec deux datacolumn, une qui sert pour le DisplayMember et une pour le ValueMember
    Le ValueMember de ma première ligne vaut 0

    Je souhaiterais que lorsqu'une option est mise à jour (et donc que mon DataTable est regénéré), l'ensemble des lignes de mon DataGridView soit réinitialisé avec cette première ligne. Actuellement, je n'arrive pas à 'forcer' la moindre valeur (la propriété Value de mon DataGridView entraine une erreur je suppose du fait qu'un DataSource est associé à cette colonne).

    Et là, ca coince ! Des idées ???

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Hmmm...
    7 lectures en 24 h, ca ne passionne pas les foules, la datagridviewcombobox !

    Je reformule ma question de façon plus claire peut être :

    Comment sélectionner par programmation l'item d'une cellule de type combobox lorsque le datagridviewcombobox est lié à une datatable ?

  3. #3
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    As-tu essayé de modifier la source de données directement plutot que le DataGridView ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Oui Skalp, j'ai bien pensé à cette solution puisque cette colonne est liée via la propriété DataSource mais je ne vois pas de méthodes permettant de 'sélectionner' une ligne de la datatable de sorte que ma combo prenne la valeur associée.

    En fait mon datatable contient les 2 colonnes suivantes, la première étant en DisplayMember et la seconde en ValueMember de ma DataGridViewComboBoxColumn :
    "Veuillez choisir un item",0
    "Item1",1
    "Item2",2
    ...

    Je voudrais que quand mon datagridview soit affiché, le premier item soit sélectionné dans mon combobox (par défaut, la cellule de type combobox est vide et attend patiemment que l'utilisateur déroule la combo et choisisse un item).
    Je voudrais aussi réinitialiser chaque ligne avec le premier item en cas de changement d'options (les options définissant les items) mais la méthode est similaire au cas précédent.

    C'est cette sélection d'item qui pose problème en fait...

  5. #5
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par nikoko34 Voir le message
    Oui Skalp, j'ai bien pensé à cette solution puisque cette colonne est liée via la propriété DataSource mais je ne vois pas de méthodes permettant de 'sélectionner' une ligne de la datatable de sorte que ma combo prenne la valeur associée.
    Tu n'as pas besoin d'agir sur le DataTable qui alimente le combobox, il te suffit de modifier ton DataSource en mettant la valeur 0 (qui correspond, si j'ai bien suivi à l'option "Veuillez choisir...") pour tous les enregistrements du champ correspondant à la colonne. Le combobox doit se positionner automatiquement sur la valeur correspondante.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Merci Skalp de t'intéresser à mon problème.

    Le fait de mettre à 0 la cellule (donc avec .Value = 0) génère une erreur (dataerror).
    Dans ce cas, la cellule affiche le 0 et l'erreur est déclenchée lorsque le pointeur passe sur la cellule.
    J'ai aussi essayé d'affecter le .Value avec le texte associé à la valeur 0 et celà ne change rien au résultat.

    Quand tu dis "Modifier le datasource en mettant la valeur 0" (alors que le datasource de cette colonne est justement un datatable), tu le traduis comment en terme de propriété settée ?

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

Discussions similaires

  1. Colonne liée à une autre DataTable
    Par Epiphany dans le forum ADO.NET
    Réponses: 5
    Dernier message: 15/02/2012, 09h42
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. [Rave] Impression d'une Band liée à une DataBand
    Par kilinette dans le forum Rave
    Réponses: 3
    Dernier message: 11/07/2005, 16h40
  4. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45
  5. Griser 1 liste déroulante liée à une autre, pb de concaténat
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2005, 16h45

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