Vaadin Grid 行显示索引

Vaadin Grid row display index

用例:

扭曲:用户可以使用标准的基于列的排序对网格进行排序,这显然完全在客户端实现。

问题:Grid.getRowIndex() returns 未排序 列表中的索引返回的网格中的项目的“索引”。如果用户已对网格进行排序,则从此索引实现 next/previous 函数可能会导致选择看起来随机跳转。

问题:有没有办法获取选中项的显示行索引?反过来,有没有办法在指定的 显示行索引 处获取项目? 或者,作为替代方案,Grid 是否有办法将选定的行索引向前或向后移动给定的数量 in display order?

And conversely, is there a way to get the item at a specified display row index?

在 Vaadin 17 和更新版本中添加了简单 API。

dataView = grid.setItems(..);
item = dataView.getItem(index);

从组件可用的数据中获取给定索引处的项目。数据的过滤和排序方式与组件中的方式相同。

在 Vaadin 14 中,它有点复杂。有代码genr

grid.getDataProvider().fetch(createQuery());

您可以在这里找到非常合适的代码示例createQuery(),只需将 0 替换为索引,将最大整数替换为 1。

https://cookbook.vaadin.com/grid-csv-export