【发布时间】:2021-12-10 10:59:34
【问题描述】:
通过刷新网格中的项目有时会发生网格显示完全疯狂:
这就是我每次更新数据的方式。 Grid 的实例保持不变:
dataProvider = new ListDataProvider<>(newItems);
grid.setItems(dataProvider);
有人知道我做错了什么还是 Vaadin 中存在错误?
完整代码:
if (!columnsIntialized) {
for (Method method : gridProperties) {
Column<T> column = grid.addColumn(data -> {
Object value = method.invoke(data);
return getFormattedValue(value, method.getReturnType());
});
String resourceKey = method.getDeclaredAnnotation(GridProperties.class).resourceKey();
column.setKey(resourceKey);
column.setHeader(AppResources.getString(resourceKey));
int width = method.getDeclaredAnnotation(GridProperties.class).width();
if (width == -1) {
column.setAutoWidth(true);
} else {
column.setWidth(width + "px");
}
}
columnsIntialized = true;
}
dataProvider = new ListDataProvider<>(items);
grid.setItems(dataProvider);
grid.recalculateColumnWidths();
【问题讨论】:
-
你能说明你是如何创建网格和定义列的吗?
-
我更改了上面的代码,因为不幸的是我无法将代码格式化为答案:)
-
您为什么要将该代码作为答案?块“完整代码”是否修复您的问题并且应该是一个答案?或者这是产生所描述问题的实际失败代码?
-
这是当前产生所描述问题的失败代码。
-
您是否解决了这个问题,如果没有,您能否创建一个简单的测试应用程序来重现该问题?
标签: java vaadin vaadin-flow vaadin-grid