XPages:使用xpages链接的“onclick”事件打开下拉列表

时间:2016-09-24 06:09:52

标签: javascript xpages xpages-ssjs

我试图使用以下clientSide代码从数据表中的链接调用popupMenu

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

但是当我点击链接时它只是把我带到同一页面的顶部,我注意到它不会将cleintside代码识别为链接。 它有什么其他方式我可以从XPages链接调用popupMenu?

该链接位于具有一些boostrap表属性的数据表中:

   <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>

1 个答案:

答案 0 :(得分:1)

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>