Vaadin表:表中没有组件

时间:2015-03-11 21:50:14

标签: java vaadin

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

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

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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

无效解决方案:

  1. 将数据加载到表格
  2. 将数据滚动到例如。 50%的表格内容
  3. 将新数据加载到表格
  4. 表格不显示所有组件
  5. 正确的解决方案:

    1. 将数据加载到表格
    2. 将数据滚动到例如。 50%的表格内容
    3. 滚动表格到顶部,到第一个表格项目
    4. 将新数据加载到表格
    5. 表格显示所有组件
    6. 在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;
      }