【问题标题】:Vaadin - remove cell borders in tableVaadin - 删除表格中的单元格边框
【发布时间】:2015-05-04 11:48:30
【问题描述】:

我在 Vaadin 的帮助下在 Eclipse 中创建了一个表。

我设法用以下行删除了表格的边框:

tblResetButton.addStyleName(Reindeer.TABLE_BORDERLESS) ;

但这仍然给我留下这样的垂直线:

有没有办法隐藏所有的单元格边框?还有一个额外的好处,是否可以给第一个单元格(带有“Gebruiker”的那个)颜色#F4F4F4和第二个单元格(文本框)颜色#E2E2E2


编辑:

formlayout 会很好,但我似乎无法让背景颜色正常工作,所以我恢复到表格。这是代码:

JAVA

tblReset.addContainerProperty("Gebruiker", String.class, null);

tblReset.setCellStyleGenerator(new Table.CellStyleGenerator() {
            @Override
            public String getStyle(Table source, Object itemId, Object propertyId) {
                if("Gebruiker".equals(propertyId)){
                    return "style-name-with-black-background";
                } else {
                    return "style-name-with-yellow-background" ;
                }
            }
        });

CSS

.style-name-with-black-background {
    background-color: black ;
}

.style-name-with-yellow-background {
    background-color: yellow ;
}

【问题讨论】:

  • 只是被问到:您不打算滥用表格作为 FormLayout 吗?
  • 第一次使用 Vaadin,所以我要去看看
  • 表单布局有什么问题?你检查book section for the form styles了吗?

标签: html css eclipse vaadin


【解决方案1】:

假设 cfrick 评论的答案是否定的,看起来这取决于您使用的主题:

将样式添加到表格中

table.setStyleName("no-vertical-lines-or-border");

在你的主题中定义它时

  .v-table-no-vertical-lines-or-border .v-table-header-wrap /* remove header-table borders */,
  .v-table-no-vertical-lines-or-border .v-table-body /* remove body-table borders */,
  .v-table-no-vertical-lines-or-border .v-table-cell-content /* remove cell borders */ {
    border: none;
  }

至于单元格,您可以使用style generator,再次为每个单元格自定义样式,类似于:

    table.setCellStyleGenerator(new Table.CellStyleGenerator() {
        @Override
        public String getStyle(Table source, Object itemId, Object propertyId) {
            if("description".equals(propertyId)){
                return "style-name-with-F4F4F4-background";
            } else {
                return "style-name-with-E2E2E2-background";
            }
        }
    });

P.S.:鉴于您正在试验,并且如果您正在使用 Vaadin 7.2+ 版本,请查看support for font icons,它有时可能会派上用场,例如嵌入式FontAwesome:

【讨论】:

  • 主题是驯鹿。我更新了问题,你能看一下吗?
  • @TimothyPersoon 就像我说的那样,您必须为您的表格手动定义一个类来删除他的边框,请参阅更新答案。
  • @TimothyPersoon 我很高兴,但如果您告诉我们您在使用 FormLayout 时遇到了什么问题,也许我们可以做得更好。
  • 一些简单的事情,我无法得到我想要的背景颜色