更改网格中单元格的颜色(Vaadin)
我正在更改网格中单元格的颜色(Vaadin),vaadin,Vaadin,我正在Grid中使用BeanItemContainer来显示我的数据。我需要根据单元格中的数据分别为每个单元格着色。瓦丁书中的“生成单元格样式”小节对此进行了解释: 使用setCellStyleGenerator()将CellStyleGenerator设置为网格。getStyle()方法获取一个CellReference,其中包含有关单元格的各种信息和对网格的引用,如果没有生成样式,则应返回样式名称或null 例如,要将样式名称添加到特定列,可以按如下方式匹配该列的特性ID: grid.set
Grid
中使用BeanItemContainer
来显示我的数据。我需要根据单元格中的数据分别为每个单元格着色。瓦丁书中的“生成单元格样式”小节对此进行了解释:
使用setCellStyleGenerator()
将CellStyleGenerator
设置为网格。getStyle()
方法获取一个CellReference
,其中包含有关单元格的各种信息和对网格的引用,如果没有生成样式,则应返回样式名称或null
例如,要将样式名称添加到特定列,可以按如下方式匹配该列的特性ID:
grid.setCellStyleGenerator(cellRef -> // Java 8
"born".equals(cellRef.getPropertyId())?
"rightalign" : null);
.v-grid-cell.rightalign {
text-align: right;
}
然后可以使用CSS规则设置单元格样式,如下所示:
grid.setCellStyleGenerator(cellRef -> // Java 8
"born".equals(cellRef.getPropertyId())?
"rightalign" : null);
.v-grid-cell.rightalign {
text-align: right;
}
还有一种方式,100%动态,没有样式文件
grid.addColumn(TemplateRenderer.<MyObj> of("<div style$=\"background-color: [[item.color]];\">[[item.duration]]</div>")
.withProperty("color", MyObj::getDurationColor)
.withProperty("duration", MyObj::getDurationMin)).setHeader("Duration");
伟大的你能解释一下我需要在哪里声明CSS规则吗?最好的地方是主题。我用的是“valo”主题。我将您的css声明放在文件(路径)src/main/webapp/VAADIN/themes/valo/styles.scss中。请告诉我为什么css仍然不起作用?解决方案是创建自己的主题