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 :

DatagridView et Combobox


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Par défaut DatagridView et Combobox
    Bonjour a tous
    Voici mon problème

    J'ai un datagridview

    je lui insert une colonne de type datagridviewcomboboxcolumn qui elle est remplit avec un datatable

    Au démarage je souhaite forcer certaine valeur de mes lignes

    ex: ma combo contient "bonjour","comment vas tu?"
    je souhaite forcer ma combo au départ sur bonjour
    Comment faire?


    J'ai deja essayé la selection avec les index mais j'ai une erreur me disant que
    La propriété ou l'indexeur 'System.Windows.Forms.DataGridViewBand.Index' ne peut pas être assigné -- il est en lecture seule
    Merci bcp et bonne journée

    Tom

  2. #2
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Tu fais comment ton binding?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Par défaut
    je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DataGridViewComboBoxColumn dc = new DataGridViewComboBoxColumn();
    dc.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
     
     
                DataTable dt = new DataTable();
     
                String requete1 = "SELECT Type_essai_1,Type_essai_2,Type_essai_3,Type_essai_4 FROM ParamEssai WHERE Nom_essai ='" + nom + "'";
     
                dt = SqlClient.GetDataTable(Globals.ConnectionString_TUB, requete1, "Erreur lors de l'importation de la liste des Essais");
     
    dc.DataSource = dt;

  4. #4
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    ce n'est pas le bindnig ça, c'est le refresh de ta column, après il faudrait que tu bing ta column avec le champs (code_type_essaie je suppose) dans la Table maitre.

    tu remplis comment la table maitre? comment tu fais la liaison?

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Par défaut
    je ne fait pas de binding ou alors sans savoir réelement ce que sait.

    je n'est pas non plus de table maitre.

    je te met mon code pour voir si tu peux en tirais des info ^^
    dsl c'est mon premier projet C#
    en tous cas merci de prendre le temps de me répondre

    Tom

    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
     
                String requete = "SELECT * FROM ParamEssai WHERE Nom_essai ='"+nom+"'";
                ds = SqlClient.GetDataTable(Globals.ConnectionString_TUB, requete, "Erreur lors de l'importation de la liste des MEF");
     
     
                ds.Clear();
                DataGridViewComboBoxColumn dc = new DataGridViewComboBoxColumn();
                dc.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
                DataTable dt = new DataTable();
     
                DataTable essai = new DataTable();
                String requete1 = "SELECT Type_essai_1,Type_essai_2,Type_essai_3,Type_essai_4 FROM ParamEssai WHERE Nom_essai ='" + nom + "'";
                essai = SqlClient.GetDataTable(Globals.ConnectionString_TUB, requete1, "Erreur lors de l'importation de la liste des MEF");
     
     
                 dc.DataSource = essai;
     
                grd.Columns.Insert(0, dc);
     
                grd.DataSource = ds;

  6. #6
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    J'ai regardé la doc pour le DataGridViewBand.Index, et tu dois avoir une propriété Selected (sur l'index) qui n'est pas en lecture seule.
    Je suis pas sur que ce soit ce que tu cherches mais tu peux toujours essayé

  7. #7
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    tu le fais au niveau du DataTable de la grille, tu mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ds.ma_colonne.DefautValue = 1; //1 c'est le code de la valeur 'bonjour'
    et pour bindiner ta colonne tu met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dc.DataPropertyName = ds.ma_colonne.ColumnName;

    j'ai une question, pourquoi tu as la meme requete sur la meme table dans ton comboBox et dans ta grille?

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Par défaut
    Pour binder pas de probleme.
    Mais le problème c'est que dans mon datatable je n'ais pas de combobox et je n'arrive pas a lui inserer donc ca ne peux pas marcher.

    Ma table est une table de parametre enfaite et je traficote la datatable ds pour gere dynamiquement l'affichage

    donc je refais la requete mais en ne selectionnant que les champs qui m'interesse pour remplir mes combobox.
    j'ai trouver tous cela plus simple dans un premier temps ensuite je l'optimiserais quand tous fontionnera ^^

  9. #9
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    j'avoue que je n'ai rien compris,

    dans ton comboBox, c'est quoi le DisplayMember? c'est quoi le ValueMember?

    pourquoi dans ta requête du combo tu sélectionnes plusieurs champs? (Type_essai_1,Type_essai_2,Type_essai_3,Type_essai_4) à quoi ça correspond chaque colonne?

    essaie d'être un peu plus clair, et puis je ne vois pas trop l’intérêt d'avoir un comboBox qui à la même source de données que la grille.

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 31
    Par défaut
    Voici l'explication complete:
    (petite photo qui aide a mieux comprendre)
    voici ce a quoi je veux arriver (voir images en pj)

    voici l'explication:
    Je par d'une table qui s'apele paramessai qui est une table principalement de bool sauf les 4 dernier champs.
    le but du jeu est d'afficher dans mon datagridview selement les colonnes dont les champs sont a true et d'y ajouter une premiere colonne me proposant les 4 champs en fin de table et d'initialiser les 4 premiere ligne du datagridview en mettant dans ma combo de la ligne 1 le champs type_essai_1 dans la ligne 2 le champs type_essai_2 .......

    Merci beaucoup

    Bonne soirée
    Tom
    Images attachées Images attachées   

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/12/2007, 23h35
  2. DataGridView et ComboBox ReadOnly
    Par Mast3rMind dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/03/2007, 18h17
  3. [VS2005] Datagridview et combobox binding
    Par s.n.a.f.u dans le forum Visual Studio
    Réponses: 3
    Dernier message: 13/12/2006, 16h15
  4. [c#] DataGridView et Combobox, encore
    Par Jinroh77 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/07/2006, 09h47

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