繁体   English   中英

Primefaces:

[英]Primefaces : <p:ajax inside of DataTable calls method several times after I update the dataTable

问题在于“p:ajax event =”rowDblselect“listener =”#{companyBean.update()}“...”,当我第一次双击时,方法“update()”被调用一次(完美!),但之后当我按下commandButton“button1”并再次双击组件时,“update()”被调用2次。 当我再重复一次时,“更新()”被称为3次............这很奇怪!! 我想当我使用commandButton更新数据表时,ajax事件会保持自身的升级。 我不知道(?)......有人能帮我解决吗?

<h:panelGrid id="panel" columns="5">
  <p:commandButton id="button1"  value="Search" actionListener="#{                     
     companyBean.search()}" update="dataTable"/>          
</h:panelGrid>

<p:dataTable id="dataTable" var="companyTO" value="#{companyBean.companiesTO}"                      
  selection="#companyBean.selectedCompanyTO}" rowKey="#{companyTO}"                   
  emptyMessage="" selectionMode="single" >   

 <p:ajax event="rowDblselect" listener="#{companyBean.update()}" immediate="true"   
        process="@this" />

 <p:column >

     ...
<p:dataTable>

obs。:当我删除“update =”dataTable“时,”event =“rowDblselect”“工作正常,只调用一次方法。所以,问题在于更新。

我在这里发现了同样的问题: https//stackoverflow.com/questions/11904556/updating-datatable-with-own-datamodel-calls-method-more-and-more

尝试删除ajax事件的immediate属性,并在commandbutton添加属性:

process="@this" partialSubmit="true" ajax="true"

像这样的Somethig:

事件:

   <p:ajax event="rowDblselect" listener="#{companyBean.update()}" process="@this" partialSubmit="true" />

按钮:

 <p:commandButton id="button1"  value="Search" actionListener="#{                     
         companyBean.search()}" update="dataTable" process="@this" partialSubmit="true" ajax="true"/> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM