Я переношу свой проект с vaadin 7 на vaadin 8. Поскольку таблица удалена.поэтому я заменяю его на сетку.ранее я выбирал идентификаторы строк для множественного выбора, например:
Set<Object> itemIds = table.getValue();
for(Object lItem : itemIds){
Integer lId = Integer.parseInt(lItem.toString());
}
Но в сетке vaadin 8 есть прослушиватель щелчков по элементам, который предоставляет индекс строки только в том случае, если мы щелкаем любой элемент и нажимаем любой флажок для выбора.он ничего не возвращает, так как флажки работают только с прослушивателем выбора.см. код ниже:
lGrd.addItemClickListener(new ItemClickListener<Employee>() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void itemClick(ItemClick<Employee> event) {
if(lGrd.getSelectionModel().isSelected(event.getItem())){
if(!lSelection.contains(event.getRowIndex())){
lSelection.add(event.getRowIndex());
}
}else if(lSelection.contains(event.getRowIndex())){
lSelection.remove(event.getRowIndex());
}
Notification.show(lSelection.toString() + " Selected Employees Row Id");
}
});
Также, используя слушатель выбора, он не возвращает индекс строки, как в itemclicklistener
lGrd.addSelectionListener(new SelectionListener<Employee>() {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public void selectionChange(SelectionEvent<Employee> event) {
Set<Employee> lSet = event.getAllSelectedItems();
for(Employee emp : lSet){
//how to fetch row id here
}
});
Он предоставляет выбранные элементы, но не индекс строки.Как получить индекс Employee Row здесь.Также, если я хочу какие-либо данные столбца.Как получить это?