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 :

Tri colonne ajoutée à un DataGridView


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Par défaut Tri colonne ajoutée à un DataGridView
    Bonjour,

    comment est-ce qu'on peut faire le tri sur une colonne ajoutée manuellement dans un DGV ?
    Merci pour toute piste.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Sort(DataGridView1.Columns("NomDeLaColonne"), ListSortDirection.Ascending)

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Sort(DataGridView1.Columns("NomDeLaColonne"), ListSortDirection.Ascending)
    Merci tomlev pour votre réponse.
    Cependant, j'ai une argumentexception avec le message suivant :
    Un contrôle DataGridView lié aux données ne peut être trié que sur des colonnes liées aux données.
    En effet, mon DGV est lié à une datasource et ayant une colonne indépendante sur laquelle je veux faire mon tri.
    J'espère que je suis bien claire.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ah ok... dans ce cas je pense qu'il faut que tu utilises la surcharge de la méthode Sort qui prend en paramètre un IComparer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class MyComparer
        Implements IComparer
     
        Public Function Compare(a As Object, b As Object) as Integer 
            ' coder ici la logique pour comparer 2 lignes
            ' renvoyer -1 si a < b, 1 si a > b, 0 si a = b
        End Public
     
    End Class
     
    DataGridView1.Sort(New MyComparer())
    Sur la colonne du DataGridView, il faut définir SortMode = Programmatic. Pour afficher le symbole de tri, il faut définir la propriété SortGlyphDirection

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Par défaut
    Citation Envoyé par tomlev Voir le message
    ah ok... dans ce cas je pense qu'il faut que tu utilises la surcharge de la méthode Sort qui prend en paramètre un IComparer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Class MyComparer
        Implements IComparer
     
        Public Function Compare(a As Object, b As Object) as Integer 
            ' coder ici la logique pour comparer 2 lignes
            ' renvoyer -1 si a < b, 1 si a > b, 0 si a = b
        End Public
     
    End Class
     
    DataGridView1.Sort(New MyComparer())
    Sur la colonne du DataGridView, il faut définir SortMode = Programmatic. Pour afficher le symbole de tri, il faut définir la propriété SortGlyphDirection

    Bonjour, merci encore pour votre aide, cependant, je bloque toujours.

    J'ai le message d'erreur suivant :

    Le contrôle DataGridView est lié aux données. Il ne peut pas utiliser le comparateur pour effectuer l'opération de tri.
    Merci pour toute piste.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    argh... j'avais pas prévu ça
    ben apparemment c'est pas possible de trier selon une colonne qui n'est pas bindée si le reste de la grille est bindée...

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Par défaut
    Citation Envoyé par tomlev Voir le message
    argh... j'avais pas prévu ça
    ben apparemment c'est pas possible de trier selon une colonne qui n'est pas bindée si le reste de la grille est bindée...
    Merci Tomlev, quoi que ça me bloque plus encore !!!!

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    tu ne pourrais pas ajouter un champ dans ta source de données ? ça règlerait le problème...

  9. #9
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 296
    Par défaut
    Citation Envoyé par tomlev Voir le message
    tu ne pourrais pas ajouter un champ dans ta source de données ? ça règlerait le problème...
    Bonjour,
    Oui c'est la seule solution que je trouve là.. Merci.. Résolu

  10. #10
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 43
    Par défaut
    Bonjour,

    N'oublie pas :

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

Discussions similaires

  1. Empêcher temporairement le tri d'une colonne d'un datagridview
    Par IDNoires dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/11/2010, 22h49
  2. Ajout entete checkbox dans une colonne d'une datagridview
    Par pbatty1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/07/2009, 10h17
  3. Réponses: 1
    Dernier message: 01/09/2008, 15h56
  4. Réponses: 4
    Dernier message: 27/05/2008, 23h43
  5. Désactivation Tri colonne Datagridview
    Par jeepibmx dans le forum VB.NET
    Réponses: 4
    Dernier message: 17/04/2008, 14h23

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