如何在p:dataTable

时间:2015-12-09 07:47:23

标签: jsf primefaces datatable tablecelleditor dynamic-columns

我正在使用Primefaces 5.3,JSF 2.2和Tomcat 8。 在单元格编辑之后,getOldValue和getNewValue返回null。为什么? 提前致谢

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 个答案:

答案 0 :(得分:0)

对于普通数据表,在p:outputLabel和p:inputText标记中将属性值=“#{data [column.property]}”更改为value =“#{data.property}”。并删除p:columns

检查primefaces链接中的单元格编辑

primefaces cell edit

对于动态数据表

primefaces - editable dynamic table