首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vaadin flow:网格条件背景色

Vaadin flow:网格条件背景色
EN

Stack Overflow用户
提问于 2019-04-09 12:15:55
回答 1查看 1.7K关注 0票数 0

我想给网格线上色,这取决于条件。我试试这个:

Java:

代码语言:javascript
运行
复制
gridEtudiant.setClassNameGenerator(t -> {
    if (t.getEtud_numero().startsWith("2")) {
        return "error_row";
    }
    return "";
});

Css:

代码语言:javascript
运行
复制
td.error_row {
  background-color: red;
}

HTML

代码语言:javascript
运行
复制
<td id="vaadin-grid-cell-1" tabindex="0" role="gridcell" part="cell body-cell" first-column="" reorder-status="undefined" aria-selected="false" class="error_row" style="width: 100px; flex-grow: 1; order: 10000000;"><slot name="vaadin-grid-cell-content-1"></slot></td>

我们可以看到“class=”error_row“”,但它不是红色的。

Vaadin版本为13.0.1

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 14:05:03

你的java代码看起来不错。

确保您有一个类似webapp/frontend/styles/shared-styles.html的html文件,其中包含以下内容:

代码语言:javascript
运行
复制
<dom-module id="my-grid-theme" theme-for="vaadin-grid">
    <template>
        <style>
            [part~="cell"].error_row {
                background: red;
            }
        </style>
    </template>
</dom-module>

如果您的布局包含带有@HtmlImport("frontend://styles/shared-styles.html")注释的网格(您似乎已经拥有了,因为您的自定义css类已经被应用了),那么它应该可以工作。

示例:

代码语言:javascript
运行
复制
grid.addColumn(Customer::getFirstname).setHeader("Firstname");
grid.addColumn(Customer::getLastname).setHeader("Lastname");
grid.addColumn(Customer::getEmail).setHeader("Email");
grid.setClassNameGenerator(customer -> {
    if (customer.getFirstname().equals("Marco")) {
       return "error_row";
    } else {
       return "";
    }
});

变成:

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55585042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档