问题在于“p:ajax event="rowDblselect" listener="#{companyBean.update()}" ...”,当我第一次双击时,方法“update()”被调用一次(完美!),但之后当我按下命令按钮“button1”并再次双击组件时,“update()”被调用了 2 次。当我再重复一次时,“update()”被调用了 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