Primefaces открыть диалог в диалог программно - PullRequest
0 голосов
/ 25 августа 2018

Я могу открыть диалоговое окно программно в таких простых выражениях, как этот пост:

Primefaces открывает закрываемый диалог программно

Я тоже могу открыть другой диалог в своем диалоге! но когда я захочу закрыть его этим кодом, он не закроется!

RequestContext.getCurrentInstance().closeDialog(null);

и я не могу ничего нажать

это происходит только тогда, когда я открываю 2 диалога друг в друге

index.xhtml

<p:commandButton value="Open First Dialog" process="@form" update="@form" actionListener="#{mybean.openFirstDialog}"/>

mybean.java

@Component
@Scope("session")
public class MyBean{

 public void openFirstDialog() {
        RequestContext requestContext = RequestContext.getCurrentInstance();

        Map<String, Object> options = new HashMap<>();

        options.put("modal", true);
        options.put("width", "850");
        options.put("contentWidth", "520");
        options.put("closable", false);
        options.put("resizable", false);

        requestContext.openDialog("/page/firstdialog", options, null);
    }

}

firstdialog.xhtml

<p:commandButton value="Open Second Dialog" process="@form" update="@form" actionListener="#{firstDialogBean.openSecondDialog}"/>

FirstDialogBean.java

@Component
@Scope("view")
public class FirstDialogBean{

public void openSecondDialog() {
        RequestContext requestContext = RequestContext.getCurrentInstance();

        Map<String, Object> options = new HashMap<>();

        options.put("modal", true);
        options.put("width", "850");
        options.put("contentWidth", "520");
        options.put("closable", false);
        options.put("resizable", false);

        requestContext.openDialog("/page/seconddialog", options, null);
    }

}

seconddialog.xhtml

<p:commandButton value="Close Second Dialog" process="@form" update="@form" actionListener="#{secondDialogBean.close}"/>

secondDialogBean.java

@Component
@Scope("view")
public class SecondDialogBean{
public void close() {
        RequestContext.getCurrentInstance().closeDialog(null);
    }
}

на самом деле я не передаю NULL, пока закрываю диалог! Я делаю вещи и передаю объект! но я не могу написать полный код здесь затем, когда я закрываю второй диалог, я могу получить этот Объект в первом диалоге и снова сделать кое-что

Я надеюсь, что смогу сказать, что я имею в виду

и после нажатия «Закрыть второй диалог» он застрял! Я тоже это пробовал, но бесполезно:

RequestContext.getCurrentInstance().closeDialog("/page/seconddialog");

1 Ответ

0 голосов
/ 25 августа 2018

Вам нужно назвать, какой диалог вы закрываете, как ...

RequestContext.getCurrentInstance().openDialog("titleEdit", options,
                null);

RequestContext.getCurrentInstance().closeDialog("titleEdit");

См. этот пример , чтобы открыть два диалоговых окна одновременно и как их закрыть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...