Tri DataGridView avec des dates
Résolu
Anonyme209
Messages postés
681
Date d'inscription
Statut
Membre
Dernière intervention
-
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
Anonyme209 Messages postés 681 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Tri DataGridView avec des dates
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Nombre de jours entre deux dates excel - Guide
- Votre colis est retenu au centre de tri - Accueil - Arnaque
- En cours de traitement sur le site de tri local - Forum Consommation & Internet
2 réponses
Bonjour,
Il faut que tu indiques le Type Date et non pas String dans ta colonne.
Voir ceci:
https://www.developpez.net/forums/d897729/dotnet/langages/vb-net/trier-colonne-type-date-datagridview/
Il faut que tu indiques le Type Date et non pas String dans ta colonne.
Voir ceci:
https://www.developpez.net/forums/d897729/dotnet/langages/vb-net/trier-colonne-type-date-datagridview/
Tu peux te servir d'un comparateur comme pour une listView.
Voici le code:
Voici le code:
Private Sub DataGridView1_SortCompare(sender As Object, e As DataGridViewSortCompareEventArgs) Handles DataGridView1.SortCompare 'Récupérer le composant Dim grid As DataGridView = DirectCast(sender, DataGridView) 'Définir le nom des colonnes (à changer en fonction de tes propres paramètres) Dim colonneDate As String = "Date" 'a adapter 'Traitement en fonction de la colonne où se situe la cellule en cours d'édition Select Case e.Column.Name Case colonneDate e.SortResult = System.DateTime.Compare(CDate((e.CellValue1)), CDate((e.CellValue2))) e.Handled = True End Select End Sub 'on peut mettre ce code dans un bouton Private Sub DataGridView1_ColumnHeaderMouseDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseDoubleClick With DataGridView1 .Sort(.Columns("Date"), System.ComponentModel.ListSortDirection.Descending) End With End Sub 'on peut mettre ce code dans un bouton Private Sub DataGridView1_ColumnHeaderMouseClick(sender As Object, e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick With DataGridView1 DataGridView1.Sort(.Columns("Date"), System.ComponentModel.ListSortDirection.Ascending) End With End Sub
Dans l'exemple que je t'ai montré, il n'y a qu'une colonne, il faut mettre toutes les colonne et voir si cela n'altère pas ton programme:
Corrige:
Dim colonneDate As Date = "Date" 'a adapter
au lieu de
Dim colonneDate As String = "Date" 'a adapter
Sinon dernière option, mettre les dates à l'américaine comme pour les photos:
2015/02/15
'Définir le nom des colonnes (à changer en fonction de tes propres paramètres) Dim colonneDate As Date = "Date" 'a adapter Dim colonneNom As String= "Nom" 'a adapter 'etc. 'Traitement en fonction de la colonne où se situe la cellule en cours d'édition Select Case e.Column.Name Case colonneDate e.SortResult = System.DateTime.Compare(CDate((e.CellValue1)), CDate((e.CellValue2))) e.Handled = True Case colonneNom e.SortResult = System.DateTime.Compare(String((e.CellValue1)), String((e.CellValue2))) e.Handled = True . End Select 'etc.
Corrige:
Dim colonneDate As Date = "Date" 'a adapter
au lieu de
Dim colonneDate As String = "Date" 'a adapter
Sinon dernière option, mettre les dates à l'américaine comme pour les photos:
2015/02/15
J'ai essayé:
mais ça ne marche pas mieux