表合并单元格 - Vaadin

时间:2015-09-21 11:41:02

标签: vaadin

我用Vaadin创建表格。一些细胞在重复。所以我希望它们合并到一个单元格中,如图所示:enter image description here

第一张图片展示了桌子现在的样子,第二张图片展示了我想看看合并细胞的方式。

我正在使用此代码:

Table table = new Table(AppData.getMessage("menu.report2"));
table.addContainerProperty(tableHeaders[0], String.class, null);
table.addContainerProperty(tableHeaders[1], String.class, null);
table.addContainerProperty(tableHeaders[2], String.class, null);
table.addContainerProperty(tableHeaders[3], String.class, null);

List<User> employeeList = employeeDAO.findAllEmployees();
int i;
for (i = 0; i < employeeList.size(); i++) {
    User employee = employeeList.get(i);
    table.addItem(new Object[]{
            CaseStatus.OPEN,
            tasksDAO.countTasks(CaseStatus.OPEN),
            employee.getFirstAndLastName(),
            tasksDAO.countTasks(employee, CaseStatus.OPEN)},
            i);
}

for (int j = 0; j < employeeList.size(); j++) {
    User employee = employeeList.get(j);
    table.addItem(new Object[]{
            CaseStatus.CLOSED,
            tasksDAO.countTasks(CaseStatus.CLOSED),
            employee.getFirstAndLastName(),
            tasksDAO.countTasks(employee, CaseStatus.CLOSED)},
            i + j);
}


table.setPageLength(table.size());

addComponent(table);
setComponentAlignment(table, Alignment.TOP_CENTER);
setMargin(true);

1 个答案:

答案 0 :(得分:1)

我认为,这在“正常方式”中是不可能的。但我知道如何模拟这个。

第一个解决方案:

您可以根据需要使用GridLayout构建网格。然后,除了这种网格的大小,没有什么能限制你的想象它不应该是大的(也指向here)。

第二个解决方案:

另一个建议有点疯狂。

  1. 禁用Table / Grid条纹。
  2. 在类似单元格的组中,只填充第一行。左边空白(或字符串中的空格)。
  3. 然后你处理重复的数据(来自你的第一列和第二列),但你不能垂直对齐它们(文本将保持在顶部 - 组的第一行)。

    第三个解决方案:

    检查Add-ons列表。例如ItemGrid