我目前正在处理 CRUD 表单,现在正在处理应该是最简单的最后一部分 - 删除。但我想在用户进行实际删除之前显示一个对话框。这就是我遇到 Primefaces 3.4 问题的地方。由于某种原因,我无法在 p:dialog 内的按钮中设置操作,ajax=false 失败。所以这就是我所做的:
<p:column headerText="#{msgs['action.delete']}"
styleClass="a-center">
<p:commandButton icon="ui-icon-trash"
oncomplete="confirmation.show()">
<f:setPropertyActionListener
target="#{marketingCodeBean.marketingCode}" value="#{code}"></f:setPropertyActionListener>
</p:commandButton>
</p:column>
对话框:
<p:confirmDialog id="confirmDialog"
message="#{msgs['message.marketingCode.confirmDelete']}"
header="#{msgs['common.confirmDelete']}" severity="alert"
widgetVar="confirmation">
<p:commandButton id="confirm" value="#{msgs['common.yes']}"
oncomplete="confirmation.hide()" update=":form:mktgCodeTable"
actionListener="#{marketingCodeBean.remove}" />
<p:commandButton id="decline" value="#{msgs['common.no']}"
onclick="confirmation.hide()" type="button" />
</p:confirmDialog>
我知道 actionListener 不应该用于业务操作,但我想不出给定数据表和对话框的解决方法。关于如何在 p:confirmDialog 中的 p:commandButton 中设置 ajax=false 的任何想法?