Hey.
how can I select the first row when displaying GRID for the first time to the user?
If you have a DataProvider with ArrayList:
if(!dataArray.isEmpty()){
grid.select(dataArray.get(0));
}
or you can…
Object obj = grid.getDataProvider().fetch(new Query<>()).findFirst().orElse(null);
if(obj != null)
grid.select(obj);
I use CallbackDataProvider. when I initialize the Grid, there are no rows inside the Grid yet. The Grid itself calls the CallbackDataProvider.fetchCallback. Maybe I need to use an event to make a grid.select(row0) ?
Something along these lines should work
private boolean dataLoaded = false;
public void someMethod() {
grid.setDataProvider(DataProvider.fromCallbacks(
query -> {
List<Person> data = getData(query);
if (!dataLoaded && data.size() > 0) {
grid.select(data.get(0));
dataLoaded = true;
}
return data.stream();
},
this::getSize
));
}
it works! THANK you!