2016-12-15 3 views
0

я вручную удалить выбранные строки в сетке с помощью:Vaadin Сетка SelectionModel обновляется только после прокрутки

for(Object selectedItem: grid.getSelectedRows()) 
    grid.getContainerDataSource().removeItem(selectedItem); 

grid.getSelectionModel().reset(); 

According to the Vaadin documentation вам нужно вызвать сброс() на selectionModel так, что они находятся в синхронизации, и это здорово ,

Все это отлично работает, но только если я прокручиваю сетку с помощью мыши в браузере, так что вся сетка перемещается. Если я не прокручиваю сетку в своем браузере, тогда мышь выбирает неправильную строку точным количеством строк, которые были предварительно выбраны до этой строки. Поэтому, если я выберу строку 2, а затем удалю ее, затем выберите строку 3, она фактически выберет строку 4. Если, однако, я прокручу вниз, чтобы обновить сетчатое представление, все будет работать точно так, как ожидалось, и будет выбрана правильная строка.

Использование Vaadin 7.7.5.

ответ

0

Похоже, что это сложно get the grid to refresh.

grid.clearSortOrder(); 

Кажется, что это обходное решение.

+0

К сожалению, на самом деле это не работает. Да, это устраняет проблему, так как вы можете правильно выбрать из сетки проблему: если вы настраиваете фильтры в столбцах, тогда она терпит неудачу и приводит к такой же ошибке. –