【问题标题】:primefaces p:ajax event="cellEdit" not firingprimefaces p:ajax event="cellEdit" 未触发
【发布时间】: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


【解决方案1】:

我认为你应该改用这个:

  <p:ajax event="cellEdit" listener="#{bean.updateData}" />

    public void updateData(CellEditEvent event) {   
    Object newValue = event.getNewValue();  
    logger.debug(newValue.toString());
    } 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 2012-05-06
    • 2013-11-02
    • 2013-02-04
    • 2013-07-23
    • 2018-12-19
    • 2019-02-20
    相关资源
    最近更新 更多