我有一个非常基本的例子,我试图根据该单元格中存在的特定字符串值为特定单元格着色.我输入了打印语句,我正在返回“绿色”,返回“橙色”等等……但是在运行时我只得到灰色和白色交替的行颜色,没有我特定的单元格颜色.我正在使用的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>