2013-07-02 39 views
0

我有這個代碼,顯示了一個主要面臨數據表和roweditor列的表。當我點擊鉛筆圖標時,啓用了可編輯模式,但在此之後,當我點擊檢查或取消圖標時,什麼也沒有發生,可編輯模式保持活動狀態。我已經搜索了很多,但我無法找到答案。沒有調用支持bean上的監聽器。無法在素數臉上留下編輯模式roweditor

這是我認爲的代碼:

<p:dataTable var="vac" value="#{vacDocBean.obl}" id="documentacion" editable="true"> 
    <f:facet name="header"> 
     Table 
    </f:facet> 

    <p:ajax event="rowEdit" update="@this" listener="#{vacDocBean.onEditRow(_record)}" /> 

    <p:column headerText="Edad">#{vacuna.inm.e}</p:column> 
    <p:column headerText="Inm">#{vac.inm.n}</p:column>  


    <p:column headerText="Fecha aplicacion"> 
    <p:cellEditor> 
      <f:facet name="output"> 
       <h:outputText value="#{vac.fechaAplicacion}"> 
        <f:convertDateTime pattern="dd/MM/yyyy"/> 
       </h:outputText> 
      </f:facet> 
      <f:facet name="input"> 
       <p:calendar value="#{vac.fechaAplicacion}" style="width:100%"/> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 
    <p:column headerText="Marca"> 
    <p:cellEditor> 
      <f:facet name="output"> 
       <h:outputText value="#{vac.marca}" /> 
      </f:facet> 
      <f:facet name="input"> 
       <p:inputText value="#{vac.marca}" style="width:100%"/> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 
    <p:column headerText="Lote"> 
    <p:cellEditor> 
      <f:facet name="output"> 
       <h:outputText value="#{vac.lote}" /> 
      </f:facet> 
      <f:facet name="input"> 
       <p:inputText value="#{vac.lote}" style="width:100%"/> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 
    <p:column headerText="Editar" styleClass="ui-editable-column-options"> 
     <!-- <p:commandLink ajax="true">--> 
       <p:rowEditor /> 
     <!-- </p:commandLink >  --> 
    </p:column> 
    <f:facet name="footer"> 
     Vacunación documentada 
    </f:facet> 

</p:dataTable> 

而且支持bean:

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
package com.mycompany.calendario; 

@Named(value="vacDocBean") 
@SessionScoped 
public class VacDocBean implements Serializable { 

    private List<Vac> obl; 

    public VacDocBean() { 

     obl = new ArrayList<Vac>(); 
     setVac(); 
     Collections.sort(obl); 
    } 

    private void setVac() 
    { 
     this.obl = new ArrayList(Helper.getObl()); 
    } 

    public List<Vac> getObl() { 
     return obl; 
    } 

    public void setObligatorias(List<Vac> obl) { 
     this.obl = obl; 
    } 

    public void onEditRow(RowEditEvent e){ 

     System.out.println("Hello"); 

    } 

    public void onCancel(RowEditEvent e){ 

     System.out.println("Hello 2"); 

    } 

} 

謝謝!

+0

是您的數據表通過一個字中,h包圍:form'標籤?同時刪除'p:ajax'中的'update'屬性。 –

+0

是的!我在數據表的周圍添加了一個h:表單,它工作正常!謝謝! //我不能贊成這個評論,因爲它不是迴應。 – dhalfageme

+0

作爲回答添加。很高興看到它的工作。 –

回答

0

只需將h:datatable標記爲h:form即可,因爲可編輯的數據表需要它。

爲了使您的監聽方法的工作,嘗試,改變內部消除方法的簽名:

<p:ajax event="rowEdit" listener="#{vacDocBean.onEditRow}" /> 
+0

Ufff,現在我還沒有足夠的聲望投票。對不起(我仍然不能在backing bean上執行監聽器,但是當我單擊或者選中或者不點擊時,編輯模式會切換到正常模式) – dhalfageme

+0

您有解決方案,無需投票答案,只需點擊支票✓當你的問題解決了。 –

+0

這是行不通的。我試過用這個簽名和惠特沒有參數:S再次感謝:) – dhalfageme

相關問題