问题出现在“p:ajax事件=“rowDblselect”listener =“#{companyBean.update()}”...”,当我第一次双击时,“update()”方法被调用一次(完美!),但之后当我按下commandButton“button1”并再次双击组件时,“update()”将被调用两次。当我再重复一次时,“update()”将被调用3次……这非常奇怪!!我认为当我使用commandButton更新datatable时,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>
注意:当我删除“update = dataTable”时,“event = rowDblselect”就可以完美工作,并且只调用方法一次。因此,问题在于更新。
我在这里找到了相同的问题:https://stackoverflow.com/questions/11904556/updating-datatable-with-own-datamodel-calls-method-more-and-more
companyBean.search()
方法中,你具体在做什么? - Aritz