【问题标题】:setStyleGenerator depends on cell valuesetStyleGenerator 取决于单元格值
【发布时间】:2023-05-11 16:20:01
【问题描述】:

我需要知道如何为每个单元格使用网格的setStyleGenerator 取决于它的值。

例如:对于数字列,我希望每个负值(小于零)都具有红色文本颜色。

我已经知道如何为整列设置样式。

addColumn(...).setStyleGenerator(...)

【问题讨论】:

    标签: java vaadin vaadin-grid vaadin8


    【解决方案1】:

    假设您的网格 bean(我们暂时称其为 GridExampleBean)具有 number 的属性/字段,当该网格行的项目编号属性时,以下应该完成将“红色”的样式名称添加到您的网格单元格小于零:

    Grid<GridExampleBean> grid = new Grid<GridExampleBean>(GridExampleBean.class);
    // you can also use the getColumn method too :  grid.getColumn("number").
    grid.addColumn(...)
            .setStyleGenerator((StyleGenerator<GridExampleBean>) item -> {
        if (item.getNumber() < 0) {
            return "red";
        }
        return "notRed";
    });
    

    【讨论】: