gpt4 book ai didi

jsf - Primefaces Dialog Framework - 打开对话框 - 关闭它 - 打开另一个对话框

转载 作者:行者123 更新时间:2023-12-01 02:05:32 28 4
gpt4 key购买 nike

Primefaces 5.0、JSF 2.2、Wildfly 8.1

以下用例:

  • 单击 View 中的命令按钮(带有一些参数)
  • bean 方法在数据库中查找某些内容 - 如有必要,将显示 dialog1。在 dialog1 中有一个窗体和一个命令按钮。
  • 单击 dialog1 中的命令按钮,bean 方法在数据库中查找某些内容。
  • Dialog1 关闭,并显示 dialog2,这取决于 bean 方法的结果。

  • bean1.java:
    public void buttonClicked() {

    Map<String, Object> options = new HashMap<>();
    options.put("modal", true);
    options.put("widgetVar", "dialog1");
    options.put("id", "dlg1");

    if(somethingTrue()) {
    RequestContext.getCurrentInstance().openDialog("dialog1.xhtml", options, null);
    }
    }

    一切都很好。 Dialog1 出现。

    dialog1.xhtml:
    <h:body>
    <h:form>
    <p:commandButton value="Button" actionListener="#{bean2.dialog1ButtonClicked}" />
    </h:form>
    </h:body>

    bean2.java:
    public void dialog1ButtonClicked() {        
    Map<String, Object> options = new HashMap<>();
    options.put("modal", true);
    options.put("widgetVar", "dialog2");
    options.put("id", "dlg2");

    if(somethingTrue()) {
    RequestContext.getCurrentInstance().openDialog("dialog2.xhtml", options, null);
    }
    }

    dialog2.xhtml:
    <h:body>        
    The operation was successful.
    </h:body>

    Dialog2 出现在 dialog1 中!

    如何关闭对话框 1 并在对话框 1 中显示对话框 2?

    在打开 dialog2 之前,我尝试使用 Primefaces Dialog Framework 关闭 dialog1:
    RequestContext.getCurrentInstance().closeDialog(null);
    RequestContext.getCurrentInstance().openDialog("dialog2.xhtml", options, null);

    Dialog2 不显示。

    我尝试在 AJAX 回调后打开 dialog2 <p:ajax event="dialogReturn" listener="#{bean1.dialogClosed}"/>Dialog2 不显示。

    我尝试了客户端 Java Script 调用: onclick="PF('dialog1').hide()"
    Dialog2 仍然显示嵌套在 dialog1 中。

    最佳答案

    使用 onHide你可以像这样打开另一个对话框。

    <p:dialog class="userRegisterDialog" header="#{bean.dailogHeader}" modal="true" resizable="false" draggable="false" onHide="PF('dialog2').show();>
    </p:dialog>

    当使用转义键关闭对话框时,它也可以工作。

    关于jsf - Primefaces Dialog Framework - 打开对话框 - 关闭它 - 打开另一个对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897397/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com