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 :

Mapping entre colonne d'un DataGridView et propriété d'une classe


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Mapping entre colonne d'un DataGridView et propriété d'une classe
    Bonjour,

    Je cherche à faire quelque chose qui à priori devrait être trivial mais qui ne semble pas l'être au final...

    Disons que je récupère une liste de client depuis une DB.

    J'ai donc créer une classe client avec les propriétés qui vont bien (id, nom, prénom, etc.).

    Quand je récupère ces clients, je les stocks dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim clients as New List(Of Client)
    Ensuite, si j'affecte cette liste à la propriété DataSource d'un DataGridView, j'ai bien ma liste de clients qui s'affiche mais je voudrais pouvoir masquer l'ID car l'utilisateur n'a que faire de cet info et ne devrait pas avoir conscience de son existence.

    Je me dis qu'il doit bien y avoir un moyen de créer les colonnes à l'avance et de dire à VS de mettre telle donnée dans telle colonne mais je ne trouve pas comment faire. Et comme je suis persuadé que l'un d'entre vous à bien déjà du faire cela, je viens chercher la réponse ici.

    Ou bien faut-il ajouter les lignes une à une avec les infos que je désire voir s'afficher ? (peut-être un BindingSource ? Je n'ai utilisé ce machin-là)

    Merci d'avance.

  2. #2
    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
    Clique droit sur ton DataGridview, Modifier colonne , et supprime celle que tu veux retiré. Ca marche si tu a bien ajouté ton binding source dans le proprietes de l'objet car il reconnait les colonnes à mettre.

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Ok, j'vais regarder du côté du BindingSource alors.

    Je passe en résolu. Je devrais arriver à me démerder maintenant que je sais de quel côté chercher.

    Merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Datagridview1.column(0).visible = false

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par gastoncs Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Datagridview1.column(0).visible = false

    Ouais bien non car je ne savais pas où allait être placé cette colonne. Dans l'absolu, j'aurais pu faire un test et regarder sa position pour en déduire son index et la masquer mais je ne trouvais cela pas propre (pour info, elle était en dernière position donc raté pour le 0 :p).

    Ici avec le code que j'ai posté, ça n'affiche que ce que je veux. Et si je veux aussi choppé l'id, j'ajoute la colonne id comme j'ai fait pour les autres en ajoutant visible à false comme tu le proposes.

    Bref, c'est résolu

  6. #6
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Pour info, la solution complète (et sans BindingSource ^^):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim particuliers As List(Particulier)
    particuliers = GetParticuliers()
    dgvClient.Columns.Clear()
    Dim index As Integer
    index = dgvClient.Columns.Add("Firstname", "Firstname")
    dgvClient.Columns(index).DataPropertyName = "Firstname"
    index = dgvClient.Columns.Add("Lastname", "Lastname")
    dgvClient.Columns(index).DataPropertyName = "Lastname"
    dgvClient.DataSource = particuliers

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/02/2010, 09h06
  2. Ajout de propriété dans une classe d'une assembly
    Par ftesson dans le forum Général Dotnet
    Réponses: 7
    Dernier message: 14/05/2007, 14h25
  3. Double propriété dans une classe
    Par Kiboumz dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/03/2007, 13h49
  4. [VB.NET 2005] Parcourir les propriétes d'une Class
    Par ricil78 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/03/2007, 21h47
  5. Réponses: 2
    Dernier message: 13/12/2006, 15h10

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