【问题标题】:Vaadin - Coloring table cells based on contentVaadin - 根据内容为表格单元格着色
【发布时间】:2014-10-22 15:36:09
【问题描述】:

我在这里有一个非常基本的示例,我试图根据该单元格中存在的特定字符串值为特定单元格着色。我输入了打印语句,我点击了返回“绿色”,返回“橙色”等......点,但在运行时我只得到灰色和白色交替的行颜色,没有我的特定单元格颜色.我使用的 css 我直接从 vaadin 中提取,认为这很简单。也许我缺少一些小东西。

单元格样式生成器代码:

            table.setCellStyleGenerator(new Table.CellStyleGenerator() {                
            @Override
            public String getStyle(Table source, Object itemId, Object propertyId) {
                if(propertyId != null ) {
                    Item item = source.getItem(itemId);
                    if(item.getItemProperty(propertyId).getValue().getClass() == String.class) {
                        String cellValue = (String)item.getItemProperty(propertyId).getValue();
                        if( cellValue.equals("AA") ) {
                            return "green";
                        } else if( cellValue.equals("BB") ) {
                            return "orange";
                        } else if( cellValue.equals("AB") ) {
                            return "yellow";
                        } else {
                            return "white";
                        }
                    } else {
                        return "white";
                    }
                } else {
                    return null;
                }
            }
          });

CSS:

    .v-table-cell-content-green {
    background: #33BB00;
}

.v-table-cell-content-orange {
    background: #FCB724;
}

.v-table-cell-content-yellow {
    background: #FFFF00;
}

.v-table-cell-content-white {
    background: #FFFFFF;
}

当我查看浏览器中实际呈现的内容时,单元格是这样的:

<td class="v-table-cell-content v-table-cell-content-green" style="width: 59px;"><div class="v-table-cell-wrapper" style="text-align: left; width: 59px;">AA</div></td>

【问题讨论】:

    标签: css vaadin


    【解决方案1】:

    如果您将 css 放入正确的 css 文件中,上述代码实际上可以工作。我试图将样式添加到 myproject.scss 而不是 styles.css 我猜你应该这样做。

    【讨论】:

    • myproject.scss 也应该可以工作,当您的构建周期将其编译为 css 并且您指定了正确的主题并包含
    • 我认为应该这样做,但不确定我的项目有什么问题导致这种情况不会发生。
    • 根据您的 vaadin 版本,您可以尝试将 css 代码添加到主题的文件 table.scss 中
    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 2013-04-09
    • 2017-03-08
    • 2014-05-04
    • 2023-04-07
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多