场景:
单击一个链接,我正在访问一个xpage,例如:start.xsp
。
我已经在此.xsp文件中添加了以下脚本:
<xp:scriptBlock id="scriptBlock1">
<xp:this.value><![CDATA[
XSP.addOnLoad(function(){
XSP.openDialog("#{id:dialogSearch}")
});
]]></xp:this.value>
</xp:scriptBlock>
因此,每次加载此.xsp时,都会显示一个对话框。问题是start.xsp
,考虑到xpage上具有许多字段/控件的事实,当前正在多次刷新/加载。每次加载/刷新此start.xsp对话框时,都会感到不舒服。
是否可以在start.xsp
加载后显示对话框,但仅在单击以上链接时才显示?我确实希望首先转到该xpage,然后再显示相应的对话框。
谢谢你的时间。
在链接中设置会话范围变量
<xp:link
escape="true"
text="Link"
id="link1">
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:
sessionScope.showDialogSearch = "yes";
context.redirectToPage("start.xsp")
}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
将渲染的属性添加到您的start.xsp的xp:scriptBlock
<xp:this.rendered><![CDATA[#{javascript:
var show = sessionScope.showDialogSearch;
sessionScope.remove("showDialogSearch");
return show
}]]></xp:this.rendered>
仅当从链接执行了start.xsp时,才会显示此对话框,并且仅显示一次,因为对话框在首次使用时已在渲染属性中被删除。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句