Primefaces Can';t在prime faces行编辑器上退出编辑模式

Primefaces Can';t在prime faces行编辑器上退出编辑模式,primefaces,datatable,Primefaces,Datatable,我有这段代码,它显示了一个带有prime faces datatable和roweditor列的表。当我点击铅笔图标时,可编辑模式被启用,但在此之后,当我点击检查或取消图标时,什么都没有发生,可编辑模式保持激活状态。我已经搜索了很多关于它的信息,但是我找不到回应。未调用支持bean上的侦听器 这是我的视图代码: <p:dataTable var="vac" value="#{vacDocBean.obl}" id="documentacion" editable="true">

我有这段代码,它显示了一个带有prime faces datatable和roweditor列的表。当我点击铅笔图标时,可编辑模式被启用,但在此之后,当我点击检查或取消图标时,什么都没有发生,可编辑模式保持激活状态。我已经搜索了很多关于它的信息,但是我找不到回应。未调用支持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> 

桌子
#{vacuna.inm.e}
#{vac.inm.n}
真空记录
以及支持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");

    }

} 
/*
*要更改此模板,请选择工具|模板
*然后在编辑器中打开模板。
*/
包com.mycompany.calendario;
@命名(value=“vacDocBean”)
@会议范围
公共类VacDocBean实现可序列化的{
私有列表obl;
公共VacDocBean(){
obl=新的ArrayList();
setVac();
集合。排序(obl);
} 
私有void setVac()
{
this.obl=newarraylist(Helper.getObl());
}
公共列表getObl(){
返回obl;
}
公共无效设定义务(列表obl){
this.obl=obl;
}
public void onEditRow(rowedite){
System.out.println(“你好”);
}
公共作废取消(RowEditEvent e){
System.out.println(“Hello 2”);
}
} 

谢谢

只需用
h:form
标记将
h:datatable
包围起来,因为可编辑的datatable需要它

要使侦听器方法正常工作,请在不更改方法签名的情况下尝试:

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


您的数据表是否被
h:form
标记包围?同时删除
p:ajax
中的
update
属性。是!!我在datatable周围添加了一个h:form,它成功了!谢谢我无法对此评论竖起大拇指,因为它不是响应。添加为响应。很高兴看到它成功了。Ufff,现在我没有足够的声誉去投票。抱歉:(我仍然无法在backing bean上执行listener,但当我单击或检查或交叉图标时,编辑模式将切换到正常模式。在您有解决方案之前,无需投票支持答案,只需单击检查即可✓ 当你的问题解决后。它不起作用。我已经尝试使用此签名,但没有参数:S再次感谢。:)请遵循。它起作用了!我忘了取消标记
周围的
。谢谢。