【问题标题】:Vaadin Grid row display indexVaadin Grid 行显示索引
【发布时间】:2022-01-18 22:46:11
【问题描述】:

用例:

  • 网格正在显示项目列表
  • 用户可以单击按钮来编辑所选项目
  • 当用户点击“编辑”时,会显示一个对话框来编辑项目
  • 用户希望对话框上有“编辑下一个”和“编辑上一个”按钮来自动保存当前项目并前进到网格中的下一个或上一个项目

转折点:用户可以使用标准的基于列的排序对 Grid 进行排序,这显然是完全在客户端实现的。

问题:Grid.getRowIndex() 返回的 Grid 中项目的“索引”返回 未排序 列表中的索引。如果用户已经对 Grid 进行了排序,则在该索引之外实现下一个/上一个函数可能会导致选择出现随机跳动。

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

【问题讨论】:

标签: vaadin vaadin-grid vaadin14


【解决方案1】:

反之,有没有办法在指定的显示行索引处获取项目?

Vaadin 17 及更高版本中添加了用于此目的的简单 API。

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

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

在 Vaadin 14 中它有点复杂。有代码生成

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

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

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

【讨论】:

  • 我看到新的 DataView API 也有方便的 getNextItem() 和 getPreviousItem() 方法,它们为我完成了难题。
猜你喜欢
  • 2015-06-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
相关资源
最近更新 更多