Компонент обновления Primefaces после закрытия диалога

Я открываю диалог, используя диалоговую структуру Primefaces

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

Затем я хочу обновить компонент на базовой странице после закрытия диалогового окна. Я знаю, что мы могли бы добавить ajax-событие 'dialogReturn'

<p:ajax event="dialogReturn" update = ":form:colors"  />

Но как это сделать программно с помощью диалогового фреймворка?


person Neo    schedule 05.05.2016    source источник
comment
У вас та же проблема.. как передать ajax-материал методу openDialog ()   -  person Kevin Busch    schedule 08.03.2017


Ответы (1)


Обходной путь:

назначить действие по открытию диалога на кнопку; с javascript вызовите метод click() этой кнопки и назначьте ему dialogReturn:

public void openDialogWithJS(){
            RequestContext.getCurrentInstance().execute("$('#myForm\\\\:myButton').click()");
    }



public void showDialog(){
    RequestContext.getCurrentInstance().openDialog("myDialog", options, null);
}
<h:form id="myForm">
                <p:commandButton id="myButton" actionListener="#{myBean.showDialog}" style="display: none;">
                    <p:ajax event="dialogReturn"  update = "myComponentId"/>
                </p:commandButton>
</h:form>
person Neo    schedule 13.06.2018
comment
Есть такая штука под названием p:remoteCommand. Не нужно злоупотреблять скрытой кнопкой. - person Kukeltje; 13.06.2018