0

素数の顔データテーブルと行エディター列を持つテーブルを表示するこのコードがあります。鉛筆アイコンをクリックすると編集可能モードが有効になりますが、その後チェックまたはキャンセルアイコンをクリックしても何も起こらず、編集可能モードはアクティブのままです。私はそれについてたくさん検索しましたが、応答が見つかりませんでした。バッキング Bean のリスナーは呼び出されません。

これはビューの私のコードです:

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

そしてバッキングビーン:

/*
 * 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");

    }

} 

ありがとう!!

4

1 に答える 1

0

編集可能なデータテーブルで必要なため、タグでh:datatable囲むだけです。h:form

リスナー メソッドを機能させるには、メソッドのシグネチャを変更せずに試してください。

<p:ajax event="rowEdit" listener="#{vacDocBean.onEditRow}" />
于 2013-07-03T08:21:05.830 に答える