【发布时间】:2013-08-22 01:50:31
【问题描述】:
好吧,我有一个关闭 p:dialog 的 p:confirmDialog,但是当我尝试关闭 p:dialog 时,它不起作用。
这是我的 p:confirmDialog 代码:
<p:confirmDialog id="confirmCancelar" message="Deseja cancelar ?" showEffect="fade" hideEffect="fade"
header="Cancelar" severity="alert" widgetVar="confirmCancelar" appendToBody="true">
<p:commandButton value="Sim" update="messages"
oncomplete="confirmCancelar.hide()"
actionListener="#{dentistaMB.cancelar}" type="button" />
<p:commandButton value="Não" update="messages"
onclick="confirmCancelar.hide()" type="button" />
</p:confirmDialog>
而我的 actionListener 是:
public void cancelar(ActionEvent event){
dentista.setPessoaFisica(new PessoaFisica());
dentista.getPessoaFisica().setSexo(new Sexo());
dentista.getPessoaFisica().setEstadoCivil(new EstadoCivil());
dentista.getPessoaFisica().setSituacao(new SituacaoPessoa());
dentista.getPessoaFisica().setUf(new Uf());
RequestContext.getCurrentInstance().execute("dialogCadastrar.hide()");
addInfoMessage("Cancelado com sucesso");
}
当我单击“Não”按钮时,p:ConfirmDialog 隐藏正常,但是当我单击“Sim”按钮时,未调用 actionListener,我尝试调试 actionListener 取消器,但从未调用它。
编辑 1
伙计们,我更改了我的代码 p:confirmDialog(代码如下),但现在 p:dialog 已正常关闭,但 p:ConfirmDialog 继续显示在屏幕上。
<p:confirmDialog id="confirmCancelar"
message="Deseja cancelar ?"
showEffect="fade" hideEffect="fade" header="Cancelar"
severity="alert" widgetVar="confirmCancelar"
appendToBody="true">
<p:commandButton value="Sim" oncomplete="confirmCancelar.hide()"
action="#{dentistaMB.cancelar}"
update=":formAlterar" />
<p:commandButton value="Não" onclick="confirmCancelar.hide()"
type="button" />
</p:confirmDialog>
【问题讨论】:
-
“硬编码监听器值”是什么意思?我不明白。
-
尝试从对话框中删除
appendToBody="true"。 -
我删除了一个 'appendToBody="true"' 并且 p:confirmDialog 不会自行关闭,也不会关闭 p:dialog。
标签: jsf primefaces