Bonjour tout le monde,
Je suis en train d'essayer d'implémenter le sort du DGV pour que le tri se fasse sur 3 colonnes.
En gros, je tri sur une première colonne, si la valeur est la même je passe à la colonne suivante, et si la valeur est toujours la même, je prend la valeur d'un troisième colonne pour comparer.
L'exécution se passe comme prévue, pas de plantage, pas d'erreur de compilation, en pas à pas ce sont bien les bonnes valeurs qui sont comparées, mais à l'affichage le tri n'est pas effectué correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub DGVFactoryModel_SortCompare(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewSortCompareEventArgs) _ Handles DGVFactoryModel.SortCompare e.SortResult = String.Compare(e.CellValue1.ToString, e.CellValue2.ToString) If e.SortResult = 0 Then Dim result = String.Compare(DGVFactoryModel.Rows(e.RowIndex1).Cells("ColumnSousFamille").Value.ToString, _ DGVFactoryModel.Rows(e.RowIndex2).Cells("ColumnSousFamille").Value.ToString) If result = 0 Then String.Compare(DGVFactoryModel.Rows(e.RowIndex1).Cells("ColumnMachine").Value.ToString, _ DGVFactoryModel.Rows(e.RowIndex2).Cells("ColumnMachine").Value.ToString) End If End If e.Handled = True End Sub
Si quelqu'un a une petite idée...
Edit :
J'ai oublié de préciser que j'appelle le sort de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DGVFactoryModel.Sort(ColumnPerteId, System.ComponentModel.ListSortDirection.Ascending)
Partager