【发布时间】:2021-09-26 17:12:22
【问题描述】:
我在 vaadin 流中使用网格。当它是处于编辑状态的行时,我想获取网格的行索引。 我想我必须使用以下内容,但我做不到。
grid.getEditor().isOpen();
grid.getEditor().getItem()
你能帮帮我吗?
【问题讨论】:
标签: grid vaadin vaadin-flow
我在 vaadin 流中使用网格。当它是处于编辑状态的行时,我想获取网格的行索引。 我想我必须使用以下内容,但我做不到。
grid.getEditor().isOpen();
grid.getEditor().getItem()
你能帮帮我吗?
【问题讨论】:
标签: grid vaadin vaadin-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());
});
【讨论】: