在p:ajax之后有条件地更新p:数据表行颜色

时间:2013-12-22 22:51:40

标签: css jsf datatable row

使用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" );
        }
 }

如果有人需要它!

0 个答案:

没有答案