使用p:datatable的rowStyleClass时ajax更新行

时间:2018-01-09 01:33:58

标签: jsf primefaces datatable ajax-update

我有一个30行的p:datatable,每行可以有不同的颜色(rowStyleClass),基于在ajax更新表的一列中选择的值。

但是,这给我输入文本的其他列中未保存的值的问题,每次我更改值ajax时,表都会重新填充,从而将每个字段重置为保存的原始值。

如何仅更新行,还使用p:datatable rowStyleClass?

例如。代码

<p:datatable id="dtable" var="tbl" value="#{bean.list}" 
    rowStyleClass=" #{tbl.column.value eq 'a' ? 'yellowColored' : ''} 
                    #{tbl.column.value eq 'b' ? 'greenColored' : ''}
                    #{tbl.column.value eq 'c' ? 'kindaBlueColored' : ''}">

    <p:column id="column" > 
        <f:facet name="header">
            <h:outputText value="column" />
        </f:facet>
        <p:selectOneMenu id="selColumn" value="#{tbl.column}" var="t" >
            <p:ajax partialSubmit="true" event="change" process="@this" 
                update="tsheet" listener="#{bean.onTypeChange}" />
            <f:selectItems value="#{bean.typeList}" var="type" 
                itemValue="#{type}" itemLabel="#{type.description}" />
        </p:selectOneMenu>
    </p:column>
</p:datatable>

0 个答案:

没有答案