vaadin Grid select of a row by index number

Viewed 304

How can I select programmatically a row by index in vaadin grid flow?

Isn't there a method like

grid.setSelectedIndex(2); for example?

Thank you

1 Answers

In Vaadin 14 when you use ListDataProvider, this is still relatively simple.

   grid.setItems(..);
   var dataProvider = (ListDataProvider<Bean>) grid.getDataProvider()
   var item = dataProvider.getItems().get(2);
   grid.select(item);

If your DataProvider is lazy one, then some more boilerplate code is needed to form a Query objecht and dataProvider.fetch(..) with Query is needed.

Vaadin 17 introduced concept (the latest version is now 19, 20 to be released soon) of DataView Java API to get rid of the boilerplate code. This adds some convenience methods to do for example selection of item at index 2. This works also with lazy data providers. Pseudocode example.

var dataView = grid.setItems(..);
var item = dataView.getItem(2);
grid.select(item);
Related