XPages:使用XPages链接的“onclick”事件打开下拉菜单

XPages: Opening a dropdown using “onclick ” event of xpages link

本文关键字:XPages 事件 下拉菜单 使用 链接 onclick      更新时间:2023-09-26

我正在尝试使用以下clientSide代码从数据表内的链接调用popupMenu

 XSP.openMenu(thisEvent,'{javascript:getComponent("popupMenuNew").getMenuCtor()}');

但是当我点击链接时,它只是带我到相同页面的顶部,我注意到它不识别cleintside代码作为链接。它有任何其他的方式,我可以调用弹出菜单从XPages链接?

链接在一个数据表中,带有一些bootstrap表属性:

   <xp:this.attrs>
        <xp:attr name="data-toggle" value="table"></xp:attr>
        <xp:attr name="data-show-columns" value="true"></xp:attr>
        <xp:attr name="data-mobile-responsive" value="true"></xp:attr>
        <xp:attr name="data-check-on-init" value="true"></xp:attr>
   </xp:this.attrs>

完整链接代码:

<xp:link escape="true" id="link1"
                    title="Create Document">
                    Neu&#160;
    <xp:this.rendered><![CDATA[#{javascript:if (rowDataEntry.isDocument()){
return true;
}  
else{
return false;
}}]]></xp:this.rendered>
    <xp:image id="image4" url="/actExpand.gif"></xp:image>
    <xp:eventHandler event="onclick" submit="false"
                        id="eventHandler2">
        <xp:this.script><![CDATA[var url = XSP.openMenu(thisEvent,'#{javascript:getComponent("popupMenuNew").getMenuCtor()}');
    var l = window.location;
    if (url != l) {
        window.location.replace(url);
    }

]]></xp:this.script>
    </xp:eventHandler>
</xp:link>

XSP.openMenu()不需要重新加载页面,所以请尝试以下操作:

<xp:link escape="true" id="link1" title="Create Document">
    Neu&#160;
    <xp:this.rendered>
        <![CDATA[#{javascript:
            if (rowDataEntry.isDocument()){
                return true;
            } else {
                return false;
            }
        }]]>
    </xp:this.rendered>
    <xp:image id="image4" url="/actExpand.gif"></xp:image>
    <xp:eventHandler event="onclick" submit="false" id="eventHandler2">
        <xp:this.script>
            <![CDATA[XSP.openMenu(thisEvent,'#{javascript:getComponent("popupMenuNew").getMenuCtor()}');]]>
        </xp:this.script>
    </xp:eventHandler>
</xp:link>