【问题标题】:Vaadin Table: no components in tableVaadin 表:表中没有组件
【发布时间】:2016-11-28 20:06:31
【问题描述】:

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

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

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

【问题讨论】:

  • 您使用的是什么容器数据源?也许一些重复的主要标识符? (重复的 itemId)
  • 您使用哪个 Vaadin 版本?
  • 我使用 Vaadin 7.3.10,容器:BeanItemContainer。我将数据库实体映射到我自己的 bean,其中包含 TextField、ComboBox 等的 setter 和 getter。Db 实体具有哈希码和按 Id 的方法,但我自己的 bean 没有。 Table 是一个插件:FilteringTable (vaadin.com/directory#addon/filteringtable)。也许条目具有重复的主要标识符是一个很好的答案,我检查了一下。但是当我第二次设置相同的数据源并将其加载到表中时,一切都很好。我的数据库中的所有条目都是唯一的
  • 我会尝试使用最新的 Vaadin 版本,即 7.4.1。可能是 7.4.1 中修复的这个问题:dev.vaadin.com/ticket/16611

标签: java vaadin


【解决方案1】:

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

无效的解决方案:

  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;
}

【讨论】:

    猜你喜欢
    • 2011-05-24
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2019-05-29
    相关资源
    最近更新 更多