xpages:我的xpage上的自定义addOnLoad事件

弗洛林·M。

场景:

单击一个链接,我正在访问一个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,然后再显示相应的对话框。

谢谢你的时间。

纳特·赫尔曼(Knut Herrmann)

在链接中设置会话范围变量

<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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章