Vaadin new Table 创建 2 个单独的表

Vaadin new Table creates 2 separate tables

我正在开发一个使用 Vaadin 的遗留应用程序,它在内部使用 Google 网络工具)

我发现标记中的 table 是使用多个 table 创建的,而一个 table 就可以。我建立了一个空白的 Vaadin 项目,发现了同样的事情:

使用此代码:

//import com.vaadin.ui.Table;
final VerticalLayout layout = new VerticalLayout();

layout.setMargin(true);
setContent(layout);

Table table = new Table("The Brightest Stars");

table.addContainerProperty("Name", String.class, null);
table.addContainerProperty("Mag", Float.class, null);

table.addItem(new Object[] { "Canopus", -0.72f }, 2);
table.addItem(new Object[] { "Arcturus", -0.04f }, 3);
table.addItem(new Object[] { "Alpha Centauri", -0.01f }, 4);

table.setPageLength(table.size());

layout.addComponent(table);

一个table在前端渲染:

然而,当您查看标记时,vaadin 已经为标题创建了一个单独的 table(而不是在 table 中使用 'th' 元素)

这似乎是一件疯狂的事情。我会说这是一个错误,但从 vaadin 文档等来看,这是正确的行为。有什么方法可以禁用它吗??

这不是错误,这是一个功能。

如果你看一下这个 table,你会看到 table 中有一个滚动条,而不是整个网格,这使得 headers 是固定的。这样,单元格 header 始终保持在顶部。

这是一个常见的用例,我记得实现了自定义小部件并达成了类似的解决方案来实现此功能。

我从未尝试过使用 Vaadin,但查找 vaadin.ui.Table 的源代码可以找到该列的一些渲染模式。很抱歉没有提供那么多帮助。

setColumnHeaders(String[] columnHeaders) Javadoc