当用户退出xe:对话框时,我需要进行一些清理。我将代码放在onUnload事件中,如下所示:
viewScope.remove("vsSomeVariable");
viewScope.remove("vsAnotherVariable");
etc;
但是当用户点击" X"在对话框上,此代码不会执行。我在我的代码中向控制台语句添加了一些打印,并且当我认为它应该时,onUnload不会触发。看起来序列是onLoad,然后是onUnload,然后用户做了他们的事情,如果他们点击" X" onUnload似乎没有执行。有没有办法禁用" X"在xe:对话框中,我可以创建一个"退出"按钮将执行我想要的操作,或者点击" X"这样我可以做清理过程吗?
答案 0 :(得分:4)
将您的SSJS代码添加到xe:对话框的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>
但是,请确保将代码放入所有属性
和不参加活动