2015-04-06 4 views
1

SlickGrid:SlickGrid: déterminer si la ligne est sélectionnée

Y a 'choisi'/'IsSelected' ou bien similaire pour les lignes de grille? Si j'utilise 'grid.getSelectedRows' alors les lignes semblent être retournées dans l'ordre où elles ont été sélectionnées (cliquées), pas nécessairement dans l'ordre où elles apparaissent sur la grille. Je veux les lignes sélectionnées dans l'ordre visible, de haut en bas.

Je peux obtenir chaque élément avec grid.getDataItem mais comment puis-je déterminer si la ligne est sélectionnée? Ai-je besoin des propriétés de la ligne plutôt que de l'élément de données?

for (var i = 0, ii = grid.getDataLength(); i < ii; i++) { 
var item = grid.getDataItem(i); 
if (!item.selected()) {   <- fails because there is no selected property 
     continue; 
}... 

Merci!

+0

Avez-vous essayé 'grid.getSelectedRows()'? –

+0

Oui, merci. getSelectedRows renvoie les lignes correctes mais pas toujours dans le bon ordre. – AnotherFineMess

Répondre

1

Je crois que this answer serait ce que vous cherchez, selon les documents trouvés here. Max Brodin a raison de suggérer grid.getSelectedRows().

EDIT: Pour @ la demande accueillir de AnotherFineMess avoir un tri de haut en bas dans la grille, le code doit être:

var items = grid.getSelectedRows().sort(function(a,b){return a - b}); 
+0

Le problème est que la liste des lignes renvoyées par grid.getSelectedRows() est ordonnée selon l'ordre dans lequel elles ont été sélectionnées. Je souhaite une liste des lignes sélectionnées en fonction de l'affichage de l'écran, de haut en bas, quel que soit l'ordre dans lequel les lignes ont été sélectionnées. – AnotherFineMess

+0

Pourquoi ne pas le trier en utilisant grid.getSelectedRows(). Sort() ;? –

+0

La grille a des options de tri, oui. Malheureusement, les utilisateurs ne commencent pas toujours en haut et cliquent sur les lignes dont ils ont besoin dans l'ordre. Ils picorent et sélectionnent partout, puis j'ai besoin de maintenir l'ordre de tri dans la liste sélectionnée, de haut en bas. – AnotherFineMess