1

我有 30 组行的 ap: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>
4

0 回答 0