(См. этот вопрос и этот вопрос для фона ...)
Дано:
grid = new Slick.Grid("#myGrid", data, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel());
grid.onSelectedRowsChanged.subscribe(function() {
row_ids = grid.getSelectedRows();
console.log(row_ids);
});
... когда я выбираю одну строку ( скажем, строка 5), я получаю результат
[4]
... чего я и ожидал. Однако сочетание клавиш CMD + Click или SHIFT + Click по другой строке (скажем, строке 3) в дополнение к этой строке дает мне результат
[2]
[4, 2]
... что НЕ то, что я ожидал (я ожидал только [4, 2]
). Кажется, это происходит, пока количество выбранных строк > 1
. Итак, если бы я продолжил выбирать другую строку (скажем, строку 17), я бы получил это
[16]
[4, 2, 16]
. Я добавил точку останова в операторе console.log
и проверил, что onSelectedRowsChanged
запускается дважды: один раз для новой строки, по которой щелкнули мышью, и один раз для всех выбранных строк.
Почему это? Я хочу, чтобы он запускался только один раз , давая мне полный массив выбранных строк. Как бы я этого добился? Или мне что-то не хватает?