2014-02-26 30 views
1

我有celledit數據表,ajax事件不會觸發單元格編輯。事件監聽器沒有被調用。謝謝。primefaces p:ajax event =「cellEdit」not firing

<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> 

public void updateData(Data d){ 
    logger.debug(d.getName()); 
} 
+1

監聽器方法簽名應該匹配公共無效了updateData(org.primefaces.event.CellEditEvent事件)根據規範。您可以從傳遞的事件對象中訪問數據對象。 –

+0

我也嘗試過,事件方法沒有被調用。 – user3154305

+0

嘗試添加進程=「@ this」並檢查它。但是方法簽名應該按照我的規定進行規定。 –

回答

1

我認爲你應該使用這個bean監聽方法:

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

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