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 :

Combobox displaymember colonne datatable [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut Combobox displaymember colonne datatable
    Hello les ragondins,

    Comme je ne trouve pas de combobox a colonnes multiples.

    j'ai decide de concatener les 2 infos pour rentrer dans une seule colonne.

    je genere une nouvelle table avec une seule colonne qui sera l'image de la liste du combobox.

    ensuite je mets cette table en datasource et je met le displaymember etant la seule colonne de cette table.

    LE resultat est que j'ai rien qui ne s'affiche
    voici le code.
    Je fais cela sur l'instance form_load





    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
            ' Initialisation de la table pour la selection des consommables
            Dim consoDTB As New DataTable
            ' calcul du nombre de ligne par rapport àla source
            Dim nblig As Integer = Convert.ToInt16(DBGMAODataSet.conso.Rows.Count)
            ' création de la colonne pour le combobox conso
            consoDTB.Columns.Add("REF", Type.GetType("System.String"))
            ' création du nombre de ligne
            consoDTB.Rows.Add(nblig)
            ' Chargement de la table
            For x As Integer = 0 To nblig - 1
                Dim col1 As String = DBGMAODataSet.conso.Rows(x).Item(0).ToString
                Dim col2 As String = DBGMAODataSet.conso.Rows(x).Item(1).ToString
                Dim Ref As String = col1 & " " & col2
                consoDTB.Rows(x).Item(0) = Ref
            Next
            ComboBox3.DataSource = consoDTB
            ComboBox3.DisplayMember = "REF"
            ComboBox3.Refresh()
    Merci
    ( j 'avais tenter en chargeant par items.add mais je ne vois que le premier)

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Hello,

    S'il n'existe pas de combobox à 2 colonnes dans les contrôles de base de Winforms, on trouve des projets permettant de palier à cette fonctionnalité manquante. (Bien que je puisse comprendre pour des raisons de maintenance de l'application que l'on désire éviter des "customs control".)

    Si ta source de donnée est une datatable, je te conseille de créer une colonne calculée sur ce dernier (qui concatène tes x colonnes), tu pourras ensuite utiliser cette dernière en tant que display member.

    Si ta source de donnée est plutot de type buisness object, ou des entités. Il est possible de redéfinir la fonction ToString ou d'ajouter une propriété readonly effectuant l'opération de concatenation.

    Le plus gros problème avec ton exemple, c'est qu'il est extrément difficile de garder un lien entre la valeur concaténée et la table original (tu devrais au moins avoir une deuxième colonne de type identifiant pour le valuemember !).

  3. #3
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    du coup la solution de la colonne me va en partie , elle me pose un autre probleme c'est que le combobox appelle la ligne a rentrer dans un Gridview et du coup je ne voudrai pas afficher la colonne calculée... puisqu'elle me sert uniquement pour le combo

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Re,

    Tu peux mettre la propriété visible de cette colonne à False afin de la cacher. Ou alors ne pas mettre le autogeneratecolum (un truc du genre) et créer les colonnes à la main.

  5. #5
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Merci de ta reponse je verrai ca tard ce soir car je pars en formation.

  6. #6
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Je te remercie cela fonctionne bien.

    Je mets en Resolu

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

Discussions similaires

  1. Somme colonne datatable à partir ResultSet
    Par mihaestii dans le forum JSF
    Réponses: 2
    Dernier message: 20/08/2007, 14h18
  2. Calcul colonne DataTable JSF
    Par mihaestii dans le forum JSF
    Réponses: 6
    Dernier message: 09/08/2007, 16h15
  3. [VB.NET]ComboBox Multi-Colonnes
    Par Golzinne dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2006, 18h55
  4. Combobox à plusieurs colonnes
    Par valval dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/02/2006, 02h36
  5. Affichage ComboBox multi-colonnes
    Par dough29 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/12/2005, 12h28

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