我有一个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>