grid - vaadin 流网格在编辑状态下获取行
问题描述
我在 vaadin 流中使用网格。当它是处于编辑状态的行时,我想获取网格的行索引。我想我必须使用以下内容,但我做不到。
grid.getEditor().isOpen();
grid.getEditor().getItem()
你能帮助我吗?
解决方案
您可以在网格集合中查找该项目:
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());
});
推荐阅读
- python - 如何在 matplotlib 中制作堆积条形图?
- android - react-native-webview 处理 blob 下载
- json - SwiftUI 获取 Array/fetchedJson 中特定 ID 的项目
- angular - 角度表列中的方法多次触发
- node.js - AWS Lambda 的环境变量可以设置为布尔值吗?
- .net - 在 .NET 中,如何将 XmlElement 写入 XmlTextWriter,其中元素可能有子元素
- googlebot - 使用 JavaScript 删除结构化数据不适用于 Google bot
- html - Wordpress 移动响应能力
- .net - 在 BlockingCollection 上使用新线程而不是 Task.Run
- android-layout - 在 recyclerView 中添加单独的/新的 viewType,而不管它在 android 中的 layoutManager