Primefaces Can';t在prime faces行编辑器上退出编辑模式
我有这段代码,它显示了一个带有prime faces datatable和roweditor列的表。当我点击铅笔图标时,可编辑模式被启用,但在此之后,当我点击检查或取消图标时,什么都没有发生,可编辑模式保持激活状态。我已经搜索了很多关于它的信息,但是我找不到回应。未调用支持bean上的侦听器 这是我的视图代码: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">
<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再次感谢。:)请遵循。它起作用了!我忘了取消标记
和
周围的
。谢谢。