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 :

Remplir combobox d'un datagridview (combobox toujours vide)


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut Remplir combobox d'un datagridview (combobox toujours vide)
    Bonjour

    Dans mon projet j’ai utilisé un code du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    {              
                ds = MaFonction(); 
                DataTable TableD = ds.Tables[0];
     
                DataGridViewComboBoxColumn comboxColonne;
     
                comboxColonne = new DataGridViewComboBoxColumn();
                comboxColonne.HeaderText = Nom ;
                comboxColonne.DataSource = ds.Tables[0];
                comboxColonne.DisplayMember = "Libelle";
                comboxColonne.ValueMember = "Id";
            }
    Afin de remplir un datagridview avec une colonne contenant une texte box.

    Au chargement de mon projet ma combobox est bien créer mais elle est toujours vide alors que ma requête retourne bien des résultats.

    Auriez vous une idée du problème si vous plais ou un exemple

    Merci d’avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Salut,

    Dans ton code tu instancies bien une DataGridViewComboBoxCell, mais en aucun cas elle n'est rattachée à ton DataGridView !

    Pour appliquer ton code sur la DataGridViewCell qui t'intéresse tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridViewComboBoxCell comboxColonne = (DataGridViewComboBoxCell)(dg.Rows[indexLigne].Cells[indexColonne]);

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Bonjours et merci pour ta réponse,

    Enfaite j'avais oublier de coller une ligne que j'avais mi dans code, la ligne
    Mondatagridview.Columns.Insert(0, comboxColonne);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ds = MaFonction(); 
                DataTable TableD = ds.Tables[0];
     
                DataGridViewComboBoxColumn comboxColonne;
                comboxColonne = new DataGridViewComboBoxColumn();
                comboxColonne.HeaderText = Nom ;
                comboxColonne.DisplayMember = "Libelle";
                comboxColonne.ValueMember = "Id";
                Mondatagridview.Columns.Insert(0, comboxColonne);
    Mais même avec cette ligne le code ne fonctionne pas.

    J'ai donc essayer le code que tu propose mais le résultat reste le même au chargement j'ai bien ma combox mais elle est toujours vide et aucune erreur semble se produire.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    Salut,

    Ce coup-ci il manque la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comboxColonne.DataSource = TableD;
    (bon je suppose que c'est une erreur de copier-coller) !

    Tu es sûr que tu as des données dans ta table ?

    Par exemple le code suivant fonctionne bien chez moi :
    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
    DataTable table = new DataTable();
                table.Columns.Add(new DataColumn("Id", typeof(int)));
                table.Columns.Add(new DataColumn("Libelle", typeof(string)));
     
                DataRow row = table.NewRow();
                row["Id"] = 1;
                row["Libelle"] = "un";
                table.Rows.Add(row);
     
                row = table.NewRow();
                row["Id"] = 2;
                row["Libelle"] = "deux";
                table.Rows.Add(row);
     
                row = table.NewRow();
                row["Id"] = 3;
                row["Libelle"] = "trois";
                table.Rows.Add(row);
     
                DataGridViewComboBoxColumn comboxColonne;
                comboxColonne = new DataGridViewComboBoxColumn();
                comboxColonne.HeaderText = "header";
                comboxColonne.DisplayMember = "Libelle";
                comboxColonne.ValueMember = "Id";
                comboxColonne.DataSource = table;
                dataGridView1.Columns.Insert(0, comboxColonne);

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 65
    Par défaut
    Bonsoir

    En effet c'étais surement une erreur de ma part le code fonctionne très bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     ds = MaFonction();
    DataTable MaTable = ds.Tables[0];
    DataGridViewComboBoxColumn comboxColonne;
    comboxColonne = new DataGridViewComboBoxColumn();
    comboxColonne.HeaderText = " MaColonne";
    comboxColonne.DataSource = ds.Tables[0];
    comboxColonne.DisplayMember = "Libelle";
    comboxColonne.ValueMember = "Id";
    MonDataGridView.Columns.Insert(0, comboxColonne);

    Merci beaucoup pour ton aide c'est génial.


    Par contre j'aurais une dernière questions si possible.

    Dans mon projet je voudrais mettre en place cette interface comme récapitulatif de commande j'aurai donc dans mon datagridview la colonne avec ma combobox qui contient tous mes articles et je voudrais ajouter dans une autre colonne un champ texte vide qui permettrais aux utilisateur de saisir la quantité.

    J'ai donc ajouter a mon code les lignes suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ds = MaFonction2();
    DataTable MaTble2 = ds.Tables[0];
    DataGridViewTextBoxColumn TexteColonne;
    TexteColonne = new DataGridViewTextBoxColumn();
    TexteColonne.HeaderText = "Quantité";
    Bindingsource.DataSource = ds;
    Bindingsource.DataMember = "MaTable2";
    bindingNavigator1.BindingSource = Bindingsource;
    MonDataGridView.Columns.Insert(1, TexteColonne);
    MonDataGridView.DataBindings.Add("Text", TexteColonne, "MaQuantite");
    Je voudrais donc a chaque fois que dans une ligne on choisi un article dans la colonne et qu'une quantite est saisie enregistrer ses informations dans ma base de données.

    Je voudrais donc savoir si il existe, a ta connaissance, un evenement qui se déclencherais pour chaque ligne de mon datagridview. ?

    Pour l'enregistrement je pourrais parcourir mon datagridview pour enregistrer mes informations mon probleme viens plutôt au moment de l'affichage car j'affiche bien autant de ligne que j'ai d'enregistrement mais les colonnes contenant mes les quantites restent toujours vide.

    Merci d'avance pour ton aide

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 93
    Par défaut
    J'suis pas sûr d'avoir tout bien compris mais tu peux regarder du côté de CellValidated ou CellValueChanged pour détecter la saisie d'une quantité !

Discussions similaires

  1. [XL-2010] Remplir listbox à partir d'une combobox en gérant des cellules vides
    Par vbanouveau dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/09/2014, 11h25
  2. [Débutant] remplir combobox d'un datagridview
    Par madfox48 dans le forum VB.NET
    Réponses: 4
    Dernier message: 18/03/2013, 09h26
  3. Remplir DataGridViews/Comboboxs avec une BDD Excel (et vice-versa)
    Par Masamunai dans le forum Windows Forms
    Réponses: 2
    Dernier message: 07/11/2010, 10h44
  4. Remplir une ComboBox dans un datagridview par datareader
    Par Machine Head dans le forum Windows Forms
    Réponses: 2
    Dernier message: 14/10/2009, 09h53
  5. comboBox objets metiers datagridview
    Par pdesoil dans le forum C#
    Réponses: 16
    Dernier message: 28/08/2007, 09h55

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