У меня SlickGrid работает с dataView, и я использую rowSelectionModel
с опцией multiSelect=false
. Когда я выбираю что-то в сетке, а затем расширяю свою сетку, нажимая кнопку, чтобы показать некоторые скрытые строки, выделение перемещается правильно, но старое выделение все еще остается в старом ряду.
Это то, что я имею до сих пор:
var dataView = new Slick.Data.DataView({inlineFilters: false});
var grid = new Slick.Grid(gridDiv, dataView, columns, options);
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: true}));
grid.setSelectedRows([]); //make sure the selection is empty
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidate();
});
dataView.beginUpdate();
dataView.setItems(data);
dataView.setFilter(displayFilter);
dataView.endUpdate();
dataView.syncGridSelection(grid);
grid.render();
Вот несколько скриншотов о поведении:
Перед расширением:
![screenshot of table before expanding](https://i.imgur.com/UACSObz.png)
Ожидаемое поведение после расширения:
![screenshot of expected behavior after expanding](https://i.imgur.com/OcFJSb1.png)
Фактическое поведение после расширения:
![screenshot of actual behavior after expanding](https://i.imgur.com/pi1q0Uk.png)
Я почти уверен, что я близко, но я не могу понять, что я делаю неправильно.
Заранее спасибо, что нашли время помочь мне с этим:)
РЕДАКТИРОВАТЬ: Я мог бы что-то нашел. Я использую syncGridSelection
, который устанавливает некоторые события, но перезаписать их позже. События, которые я перезаписываю
dataView.onRowCountChanged()
dataView.onRowsChanged()
grid.onSelectedRowsChanged
это может быть проблема здесь? Мне нужно, чтобы эти события работали. grid.onSelectedRowsChanged
используется для передачи выбранного элемента на график, поэтому он также необходим.
РЕДАКТИРОВАТЬ 2:
Мне удалось воспроизвести проблему с примером 5, модифицированный код можно найти в этой пасте
Действия по воспроизведению:
1. Выберите пункт 10
2. Свернуть предмет 7