使用rowStyleClass对我不起作用,因为我不想重新渲染整个数据表。我的数据集中有panelGroup。我重新渲染我需要的东西,它工作得很好。但是,我无法弄清楚如何更改我重新渲染的单元格行/单元格的背景颜色。我可以对selectOneMenu或outputText样式执行操作,但不能执行td / tr。
<p:column styleClass="column5">
<h:panelGroup id="panelGroupAN">
<h:selectOneMenu id="accountNumber" value="#{var.accountNumber}" rendered="#{var.checkedBox}">
<f:selectItem itemValue="-1" itemLabel="Select One" />
<f:selectItems value="#{bean.accountNumberList}" var="option" itemLabel="#{option.code}" itemValue="#{option.code}" />
</h:selectOneMenu>
<h:outputText value="#{var.accountNumberDisabled}" rendered="#{!(var.checkedBox)}" />
</h:panelGroup>
</p:column>
编辑(仍然无效)
.yellowBG {
background-color: #FBEC88 !important;
background-image: none !important;
color: #000000 !important;
}
和
<h:panelGroup id="panelGroupS" styleClass="#{var.checkedBox ? 'yellowBG' : 'column5'}">
http://i.stack.imgur.com/V4cAb.png
你可以看到一点黄色,但我希望它在整个细胞上
编辑2:
用jquery想出来。
<p:ajax oncomplete="changeColor(#{rowIndex}, #{var.checkedBox})" />
和
function changeColor(rowIndex, disabledCheck){
if(disabledCheck){
$('.ui-datatable-data tr').eq(rowIndex).children('td,th').css( "background-color", "#FDFEFE" );
}
else{
$('.ui-datatable-data tr').eq(rowIndex).children('td,th').css( "background-color", "#FBEC88" );
}
}
如果有人需要它!