Как получить старое / новое значение отредактированной ячейки из p:cellEditor в p: столбцы p:dataTable
Я использую Primefaces 5.3, JSF 2.2 и Tomcat 8. После редактирования ячеек getOldValue и getNewValue возвращают ноль. Зачем? заранее спасибо
XHTML:
<p:dataTable id="dtbl" var="data" value="#{definitionsBean.dataList}" editable="true" editMode="cell">
<p:ajax event="cellEdit" listener="#{definitionsBean.onCellEdit}" update=":frm:dtbl" />
<p:columns value="#{definitionsBean.columns}" var="column"columnIndexVar="colIndex">
<f:facet name="header">
#{column.header}
</f:facet>
<p:cellEditor>
<f:facet name="output">
<p:outputLabel id="modelOutput" value="#{data[column.property]}" />
</f:facet>
<f:facet name="input">
<p:inputText id="modelInput" value="#{data[column.property]}"
style="width:100%" rendered="true" />
</f:facet>
</p:cellEditor>
</p:columns>
</p:dataTable>
боб:
public void onCellEdit(CellEditEvent event){
Object oldValue = event.getOldValue();
Object newValue = event.getNewValue();
}
1 ответ
Для обычной таблицы данных Измените значение атрибута ="#{data[column.property]}" на value="#{data.property}" в тегах p:outputLabel и p:inputText. и удалите p: столбцы
проверить редактирование ячеек в ссылке на Primefaces
редактирование ячейки простых лиц
Для таблицы динамических данных