vaadin Grid выбор строки по порядковому номеру

Как я могу программно выбрать строку по индексу в потоке сетки vaadin?

Нет ли такого метода, как

grid.setSelectedIndex(2); например?

Спасибо


person nick    schedule 22.05.2021    source источник
comment
Какой тип DataProvider вы используете? Если вы используете setItems, это ListDataProvider   -  person Hawk    schedule 22.05.2021
comment
Привет, Хоук, да, я использую setItems. Моя цель - показать, что строка уже выбрана.   -  person nick    schedule 22.05.2021


Ответы (1)


В Vaadin 14, когда вы используете ListDataProvider, это все еще относительно просто.

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

Если ваш DataProvider ленив, то для формирования объекта Query потребуется еще какой-то шаблонный код, а dataProvider.fetch(..) с Query нужен.

Vaadin 17 представил концепцию (последняя версия сейчас 19, скоро будет выпущена 20) DataView Java API, чтобы избавиться от шаблонного кода. Это добавляет некоторые удобные методы, например, выбор элемента по индексу 2. Это также работает с ленивыми поставщиками данных. Пример псевдокода.

var dataView = grid.setItems(..);
var item = dataView.getItem(2);
grid.select(item);
person Tatu Lund    schedule 23.05.2021