在 p:datatable 中设置单元格的背景颜色

Set the background color of a cell in a p:datatable

我有一个 primefaces datatable,我正在尝试将单元格 background-color 设置如下:

<p:column sortBy="#{salle.couleur}">  
                    <f:facet name="header">  
                        <h:outputText value="#{messages.Couleur}" />  
                    </f:facet>  
                    <h:outputText  style="background-color:##{salle.couleur}" />  
                </p:column>

#{salle.couleur} 的值是这样的:0909e8,这就是为什么在值之前使用 #

但它不起作用,当我检查 html 页面时,我可以看到该单元格确实有一个 background-color :

我该如何解决这个问题?

在你的例子中,检查的 <span /> 是空的,所以没有什么可以用自定义背景着色。那是因为您没有设置单元格的背景颜色,而是设置单元格内容的背景颜色。我建议通过以下方式设置单元格本身的背景颜色:

<p:column
    sortBy="#{salle.couleur}"
    style="#{empty salle ? '' : 'background-color: #'.concat(salle.couleur).concat(';')}"
>  
   ...
</p:column>

因此,即使单元格内容为空,单元格本身也将具有自定义背景色。 ternary operator 中的 empty salles 条件防止列 header 也变色。