首页 > 解决方案 > vaadin 流网格在编辑状态下获取行

问题描述

我在 vaadin 流中使用网格。当它是处于编辑状态的行时,我想获取网格的行索引。我想我必须使用以下内容,但我做不到。

   grid.getEditor().isOpen();
   grid.getEditor().getItem()

你能帮助我吗?

标签: gridvaadinvaadin-flow

解决方案


您可以在网格集合中查找该项目:

grid.getEditor().addOpenListener(event -> {
    System.out.println("Opened editor on item " + myItems.indexOf(event.getItem()));
});   

尽管“索引”将是该集合中的索引,而不是显示网格中的索引,但受排序顺序和过滤的影响。我相信不公开索引EditorOpenEvent是有意的,因为索引的概念是特定于表示的,并且从网格的服务器端初始化中抽象出来。

如果您确实需要获取当前网格表示中的行索引(尊重排序顺序),您可以进行 Javascript 调用。鉴于这不是记录在案的 API 的一部分,它可能会发生变化。

PendingJavaScriptResult pendingJavaScriptResult = grid.getElement().executeJs("return this._focusedItemIndex");
pendingJavaScriptResult.then(jsonValue -> {
    System.out.println("From JS:" + jsonValue.asNumber());
});

推荐阅读