Bonjour,
j'utilise un DataGrid.
Je souhaite effectué un tri numérique sur un colonne avec des données numériques (2 en réalité mais une fois que je sais le faire pour une ). Malheureusement, il me fait un tri alphabétique
Voilà comment je m'y prends:
Comment dois-je mis prendre?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var sizeSort:Boolean = true; var testSort:Boolean = true; var sortListener = new Object(); sortListener.headerRelease = function(event) { if (event.columnIndex == 0) { var sort = sizeSort ? "ASC" : "DESC"; sizeSort = !sizeSort; myDataGrid_dg.dataProvider.sortItemsBy("fsize", sort, Array.NUMERIC); } if (event.columnIndex == 1) { var test = testSort ? "ASC" : "DESC"; testSort = !testSort; data_array.sortItemsBy("ftest", test, Array.NUMERIC); myDataGrid_dg.dataProvider = data_array; } }; myDataGrid_dg.addEventListener("headerRelease", sortListener);
Les sources sont ici : http://membres.lycos.fr/pfe26/mx2004...-TriNumerique/
J'en profite, j'aurai également une question sur les cellRenderer
J'ai formaté la colonne pour qu'elle affiche les tailles en octets sous forme o, Ko ou Mo. Les données réelles contenues dans le tableau sont des entiers (cliquer sur la cellule pour les valeurs réelles)
Je suis passé par un cellRenderer (SizeCellRenderer dans mon cas) pour reformater l'affichage mais aussi pour faire un alignement à droite.
Le reformatage, j'aurais pu le faire en passant par la fonction DataGridColumn.labelFunction (Ca marche) mais je n'ai pas trouvé de moyen d'aligner à droite.
Y-a-t'il un autre moyen que de passer par un cellRenderer?
Merci d'avance
Greg
Partager