Как получить старое / новое значение отредактированной ячейки из 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

редактирование ячейки простых лиц

Для таблицы динамических данных

Primefaces - редактируемая динамическая таблица

Другие вопросы по тегам