【问题标题】:new items destroy layout of grid新项目破坏网格布局
【发布时间】: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


【解决方案1】:

Vaadin 22.0.3 计划于周一发布并修复。

【讨论】:

    猜你喜欢
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-07
    相关资源
    最近更新 更多