【发布时间】:2014-03-29 20:41:36
【问题描述】:
我有带有 celledit 的数据表,ajax 事件不会在单元格编辑时触发。没有调用事件侦听器。谢谢。
<ui:define name="content">
<h:form prependId="false" id="tForm">
<p:datatable id="dTable" value="#{bean.tData}" var="data"
editable="true" editMode="cell">
<p:ajax event="cellEdit" listener="#{bean.updateData(data)}" />
<p:column>
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{data.name}"></h:outputText>
</f:facet>
<f:facet name="input">
<p:inputText value="#{data.name}"></p:inputText>
</f:facet>
</p:cellEditor>
</p:column>
</p:datatable>
</h:form>
</ui:define>
bean 监听方法
public void updateData(Data d){
logger.debug(d.getName());
}
【问题讨论】:
-
监听方法签名应该根据规范匹配 public void updateData(org.primefaces.event.CellEditEvent event)。您可以从传递的事件对象访问数据对象。
-
我也试过了,没有调用事件方法。
-
尝试添加 process="@this" 并检查它。但是方法签名应该是我根据规范指定的。
-
@user3154305 - 检查您的 javascript 控制台是否有验证/转换/javascript 错误
标签: ajax jsf primefaces