【发布时间】:2021-08-12 06:01:55
【问题描述】:
问题在这里提出:https://vaadin.com/forum/thread/18095407/how-to-create-a-grid-without-binder
但是 vaadin 的论坛关闭了,所以我想在这里继续。
在 Vaadin 14 上,关于使用动态变化列数实现网格的最佳方式的任何建议。使用列索引 (1,2,3...) 对我来说不是一个好的选择。假设我有一个简单的 Json 文件(只有 1 级:键值)来映射到网格,并且这个 Json 有一个未知的属性列表。
哪种方法在性能方面更好?:
[选项 1]
class Data {
private Map<String, Object> values = new HashMap<>();
public void set(String key, Object val) {
values.put(key, val);
}
public Object get(String key) {
return values.get(key);
}
}
Grid<Data> myGrid = new Grid<>();
[选项 2]
public class GridDynamicValueProvider implements ValueProvider<GridDynamicRow, Object> {
private int columnIndex;
public GridDynamicValueProvider(int columnIndex) {
this.columnIndex = columnIndex;
}
@Override
public Object apply(GridDynamicRow dynamicRow) {
return dynamicRow.getValue(columnIndex);
}
}
public class GridDynamicRow {
private List<Object> values = new ArrayList<>();
public void addValue(String value) {
values.add(value);
}
public Object getValue(int columnIndex) {
return values.get(columnIndex);
}
}
【问题讨论】:
-
请添加您尝试过的代码以及失败的原因(例如错误、堆栈跟踪、日志等),以便我们对其进行改进。
-
链接的论坛讨论已经包含一个答案。检查我发布的 GitHub 链接。 Vaadin 14 也可以使用相同的方法。
-
“哪种方法在性能方面更好” - 除非您根据您的工作负载来衡量它,否则没人会知道。
标签: vaadin vaadin-flow vaadin-grid