xpages - частичное обновление из диалогового окна, похоже, не работает при повторном управлении. снаружи диалоговое окно это работает - PullRequest
0 голосов
/ 02 сентября 2018

В диалоговом окне xp: у меня есть кнопка, которая загружает внутренние данные и закрывает диалоговое окно.

<xp:button value="Label" id="button1">
    <xp:eventHandler event="onclick"
        submit="true" refreshMode="partial" refreshId="rptContainer">
        <xp:this.action><![CDATA[#{javascript:
//load data. will not add the code for that but works fine;
viewScope.put("customers",promoBean.getCampaign().getCustomers());
getComponent("dlgCampaign").hide();}]]></xp:this.action>
    </xp:eventHandler>
</xp:button>

В случае события я установил частичное обновление для элемента управления xp: panel, который содержит повторяющийся элемент управления, связанный с данными для viewScope.

<xp:panel id="rptContainer">
<xp:repeat id="rptCustomers" var="obj" indexVar="index" value="#{viewScope.customers}">...

С помощью панели отладки xpages я вижу, что viewScope от кнопки в диалоге обновляется. но когда диалоговое окно закрыто, изменения не отображаются в элементе управления повтором.

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

Может кто-нибудь объяснить мне, как я могу обновить элемент управления повторением из диалогового окна?

Я попробовал свойство onHide диалогового окна и использовал его как код:

XSP.partialRefreshGet('#{id:rptContainer}');

Но это никак не влияет.

Я даже попытался полностью обновить событие кнопки, но это также не дало результата.

Может кто-нибудь подсказать мне, как это сделать правильно?

1 Ответ

0 голосов
/ 03 сентября 2018

когда я закрываю диалоговое окно через SSJS, я закрываю его, используя следующий синтаксис:

<xp:button value="OK" id="btnOK">
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:/*your processing code*/
             var dialogBox = getComponent('/*id of the dialog to close*/');
             dialogBox.hide('/*id of the component to refresh*/');}]]> 
       </xp:this.action>
    </xp:eventHandler>
</xp:button>

Хотя режим обновления «завершен», обновляется только компонент в методе «скрыть».

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