2014-09-18 3 views
4

Мне нужно выполнить некоторую очистку, когда пользователь выходит из диалога xe:. Я поставил код в событие OnUnload как это:захват, когда пользователь выходит из диалога xe:

viewScope.remove("vsSomeVariable"); 
viewScope.remove("vsAnotherVariable"); 
etc; 

но когда userr нажмет «X» в диалоговом окне этот код не выполняется. Я добавил некоторую печать в консольные инструкции в моем коде, и onUnload не срабатывает, когда я думаю, что это должно произойти. казалось бы, что последовательность - onLoad, затем onUnload, тогда пользователь делает свою вещь, и если они нажимают «X», onUnload не появляется. Есть ли способ отключить «X» в диалоговом окне xe: так что я могу создать кнопку «Выход», которая будет делать то, что я хочу, или захватить щелчок на «X», чтобы я мог выполнить мой процесс очистки?

ответ

4

Добавьте свой код SSJS х ^: Диалог onHide или onUnload событие:

<xe:dialog id="dialog1"> 
    <xe:this.onHide><![CDATA[#{javascript:print("onHide")}]]></xe:this.onHide> 
    <xe:this.onUnload><![CDATA[#{javascript:print("onUnload")}]]></xe:this.onUnload> 

Но, убедитесь, что вы кладете код в Все свойства

enter image description here

и не в События

enter image description here

+0

Это работает так, как я хочу, добавив его в onHide. Похоже, onUnload запускается сразу после onLoad, поэтому он не срабатывает при нажатии кнопки «X». Но onHide работает как шарм, и я пробовал события и не мог заставить работать. Пошел в «Свойства» и начал все дальше. Спасибо за указатель. –

Смежные вопросы