一行的 vaadin Grid select 按索引号

vaadin Grid select of a row by index number

如何在 vaadin 网格流中按索引以编程方式select一行?

有没有像

这样的方法

grid.setSelectedIndex(2); 例如?

谢谢

在Vaadin 14中使用ListDataProvider时,这个还是比较简单的。

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

如果您的 DataProvider 懒惰,则需要更多样板代码来形成 Query objecht,并且需要 dataProvider.fetch(..)Query

Vaadin 17 引入了 DataView Java API 的概念(最新版本现在是 19、20 即将发布)以摆脱样板代码。这增加了一些方便的方法来做例如选择索引 2 处的项目。这也适用于惰性数据提供者。伪代码示例。

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