【问题标题】:How to get old/new value of edited cell from p:cellEditor in p:columns of p:dataTable如何在 p:dataTable 的 p:columns 中从 p:cellEditor 获取已编辑单元格的旧/新值
【发布时间】:2016-03-14 09:42:19
【问题描述】:

我正在使用 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();

}

【问题讨论】:

  • 你的数据表周围有 h:form 标签吗?
  • 是的,我有 h:form 标签。

标签: jsf primefaces datatable tablecelleditor dynamic-columns


【解决方案1】:

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

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

primefaces cell edit

对于动态数据表

primefaces - editable dynamic table

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
相关资源
最近更新 更多