java - 瓦丁表 : no components in table

标签 java vaadin

在我的表中,我渲染的行包含组件。将数据源加载到表后,有时会出现空字段(组件不可见,文本 - 是)。我没有任何异常(exception)。

当我滚动表格内容时会发生这种情况。刷新表数据源后一切正常。

怎么了? 附件中有一个例子。

enter image description here

最佳答案

我找到了解决方案。我认为这可能是一个错误。

无效的解决方案:

  1. 将数据加载到表
  2. 将包含数据的表格滚动到例如。表格内容的 50%
  3. 将新数据加载到表中
  4. 表格未显示所有组件

正确的解决方案:

  1. 将数据加载到表
  2. 将包含数据的表格滚动到例如。表格内容的 50%
  3. 将表格滚动到顶部、第一个表格项目
  4. 将新数据加载到表中
  5. 表格显示所有组件

在 Vaadin 7.4.1 中也存在同样的错误。也许重新创建表应该有帮助?

好的。现在可以了。这是临时解决方案。我重新创建表并将数据加载到新表中:

private void createTable() {
    pzbs = (FilterTable) buildTable();
    h.addComponent(pzbs);
    h.setExpandRatio(pzbs, 1.0f);
}

private void recreateTable() {
    h.removeComponent(pzbs);
    createTable();
}

private Component buildRoutes() {
    routes = new ListSelect() {
        {
            setNullSelectionAllowed(false);
            setSizeUndefined();
            setWidth(100.0f, Sizeable.Unit.PERCENTAGE);
            setHeight(100.0f, Sizeable.Unit.PERCENTAGE);
            setImmediate(true);
        }
    };
    routes.addValueChangeListener((Property.ValueChangeEvent event) -> {
        if (routes.getValue() != null) {
            recreateTable();
            countAndUpdatePercentage(countCorrectReadouts());
            sendedToPSG.select(null);
            selectedRoute = (KTREntity) routes.getValue();
            updateTable();
        }
    });

    return routes;
}

关于java - 瓦丁表 : no components in table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28998073/

相关文章:

java - Vaadin 项目无法启动

java - JPanel 上不显示按钮

java - 当 main(String[] args) 是一个方法时,为什么编译器会说 "main class could not be found or loaded"?

java - 如何获取发送请求的客户端的IP?

java - 如何在 Vaadin 8 中渲染网格的 LocalDateRenderer

grails - grails:生产环境所需的scss编译器

java - 如何用eclipse配置hadoop

java - 在双向 Recyclerview 中处理水平滚动时禁用 SwipeRefreshLayout

css - Vaadin ListSelect - 一个列表中的多种样式

tomcat - Vaadin 应用程序创建导致内存泄漏的线程