1

我扩展了 IndexedContainer 以与分页表一起使用。表格设置为未定义的大小(上线层次结构也是如此),因此当它第一次呈现时,即第 1 页,所有列的宽度都动态计算,这很好。

当切换到另一个页面时,自定义 IndexedContainer 会重新加载一组新的项目,这些项目会成功地被表格拾取并呈现。但是,表格不会根据新的项目集调整列宽。基本上,列宽正是为第 1 页动态计算的。

我一直在尝试手动解决这个问题:

  • 所有列上的 setColumnWidth(..., -1)
  • setSizeUndefined(),再次,在桌子上
  • 桌子上的 setWidth(-1, ...)
  • 表格和 UI 上的marksAsDirty(Recursive)()

但没有按预期工作。

任何想法将不胜感激。

(也发布在https://vaadin.com/forum#!/thread/4015043

4

1 回答 1

1

正如https://vaadin.com/forum#!/thread/4015043所建议的,在 Table 中有一个实验性的alwaysRecalculateColumnWidths布尔标志来解决这个问题(在项目集更改时调整列大小)。该标志受保护,初始化为 false 并且还没有设置器,因此需要扩展 Table 以将其设置为 true。

于 2013-09-16T07:35:12.477 回答