begin process at 2013 05 26 03:23:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

ADO.NET

 > 

trier un listview en VB.NET


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

trier un listview en VB.NET

mercredi 26 mars 2008 à 10:48:39 | trier un listview en VB.NET

Le grand Zorro

Bonjour à tous,

J'ai fait des recherches ... infructueuses malheureusement .. concernant ce soucis :
En VB.NET 2005 J'ai un listview avec 5 colonnes.
Avec l'événement ColumnClick je veux trier mon listview. Mais je ne parviens à ne trier que la première colonne quelque soit l'en-tête sur lequel je click.

Mon code est celui-ci :
    Private Sub LVResultat_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles LVResultat.ColumnClick
        Select Case e.Column
            Case 0

                If Me.LVResultat.Sorting = SortOrder.Ascending Then
                    Me.LVResultat.Sorting = SortOrder.Descending
                Else
                    Me.LVResultat.Sorting = SortOrder.Ascending
                End If

            Case Else
                Exit Select
        End Select

    End Sub
Comment utliser ma variable e.column pour trier la bonne colonne.
La doc microsoft indique qu'il faut créer une classe ListViewItemComparer basé sur une implémentation de IComparer.Compare mais je trouve cela un peu compliqué pour une tâche simple.

Quelqu'un a-t-il déjà réfléchi à cette question ?

Deuxième soucis :
Ma listview est rempli avec des données venant d'une BD. J'ai une requête simple avec une Clause ORDER BY. Et là plus aucun tri possible avec le code ci-dessus! oups!

Merci de votre aide
mercredi 26 mars 2008 à 10:51:45 | Re : trier un listview en VB.NET

Le grand Zorro

re
oubliez la deuxième question ... ça marche
reste la première
mercredi 26 mars 2008 à 11:22:10 | Re : trier un listview en VB.NET

Renfield

Administrateur CodeS-SourceS
Réponse acceptée !
compliqué ?

l'exemple donné sur la MSDN ne semble pas l'être...
lien:http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformslistviewclasslistviewitemsortertopic.asp

        ' ColumnClick event handler.
        Private Sub ColumnClick(ByVal o As Object, ByVal e As ColumnClickEventArgs)
            ' Set the ListViewItemSorter property to a new ListViewItemComparer
            ' object. Setting this property immediately sorts the
            ' ListView using the ListViewItemComparer object.
            Me.listView1.ListViewItemSorter = New ListViewItemComparer(e.Column)
        End Sub

    End Class

    ' Implements the manual sorting of items by columns.
    Class ListViewItemComparer
        Implements IComparer

        Private col As Integer

        Public Sub New()
            col = 0
        End Sub

        Public Sub New(ByVal column As Integer)
            col = column
        End Sub

        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
           Implements IComparer.Compare
            Return [String].Compare(CType(x, ListViewItem).SubItems(col).Text, CType(y, ListViewItem).SubItems(col).Text)
        End Function
    End Class


Ca apporte une certaine souplesse de faire ainsi...
je vois pas pourquoi tu cherches midi à quatorze heures.
mercredi 26 mars 2008 à 11:29:01 | Re : trier un listview en VB.NET

Le grand Zorro

J'ai bien la même doc. et je vais sûrement me rabattre dessus.
Je trouve ça un peu compliqué de créer une fonction .. et même une classe .. pour une fonctionnalité qui devrait être de base dans un controle comme le listview. en VB6 il ne suffisait de dire quelle colonne on voulait trier? mais je me trompe peut-être...

mercredi 26 mars 2008 à 11:34:37 | Re : trier un listview en VB.NET

Kristof_Koder

Google est ton ami : http://www.vb-helper.com/howto_net_listview_sort_clicked_column.html
mercredi 26 mars 2008 à 11:35:41 | Re : trier un listview en VB.NET

Renfield

Administrateur CodeS-SourceS
non, il suffisait effectivement de modifier le SortKey.

mais avec ce grand désavantage d'être géné avec des colonnes qui contiennent des valeurs numériques, des dates, etc...

1
10
11
2
20
21
...

ou bien

01/02/2008
11/04/2008
12/03/2008
...
mercredi 26 mars 2008 à 11:36:04 | Re : trier un listview en VB.NET

Kristof_Koder

Plus complexe en .NEt qu'en VB6, peut-être mais cela est bcp plus puissant, puisque tu peux définir toi-même la façon dont seront trié les données
mercredi 26 mars 2008 à 12:52:37 | Re : trier un listview en VB.NET

Le grand Zorro

Bon je m'incline...
j'ai rempris l'exemple de la do msdn et j'ai mis ça dans l'événement click :
        Static OrdreDeTri As System.Windows.Forms.SortOrder
        OrdreDeTri = 1 - OrdreDeTri
        Me.LVResultat.ListViewItemSorter = New ListViewComparer(e.Column, OrdreDeTri)

ça marche nikel
Merci à tous




Cette discussion est classée dans : net, vb, listview, trier, lvresultat


Répondre à ce message

Sujets en rapport avec ce message

Trier listview vb.net [ par lolorenzeb ] Bonjour à tous,voila je voudrais tout simplement savoir comment trier un listview en cliquant sur une colonne. Je sais qu'il faut utiliser l'evenement [vb.net] Trier des données excel [ par saku28 ] Hello Je suis un peu coincée sur mon bout de code et j'ai fait une recherche sur le forum malheureusement je n'ai pas trouvé de topic répondant à ma VB.Net Trier une colonne Texte comme si c'était du numérique [ par MagDix ] Salut J'aimerais savoir si c'est possible de trié une colonne qui est en texte et qui contient des chiffres.et donc d'être capable de trier le colo [VB.Net] LISTVIEW [ par bouv ] Salut,Je rencontre un petit problème dans l'utilisation d'une ListView :J'ai besoin de récupéré en temps réel le contenu du dernier élément sélectionn VB.Net Trier un tableau de String [ par MagDix ] Bonjour à tous... Comment est-il possible de trier dans un Tableau.. ??? Si quelqu'un peut me montrer un exemple à partir de la colonne 0 merci comment trier un tableau en 2 dimension en vb net???????????? [ par hananee88 ] salut    je suis debutante en vb net j'aimerai bien que vs m'aiderai s'il vs plait  je veux savoir comment on peut trier un tableau a 2 dimension en v ListView avec des cellules modifiables en VB.NET [ par cest_adil ] salut a tous; je cherche comment ListView avec des cellules modifiables , et merci à tous. VB.Net Metrre plus de 255 caractères à une cellule dans un ListView ? [ par JeffC1977 ] Bonjour à tous J'utilise un ListView et je dois faire afficher une information qui contient plus de 255 caractères. Existe-t-il une facon d'augment


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,168 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales