捕获被点击的寻呼机的页码

时间:2016-06-15 14:33:39

标签: xpages xpages-ssjs

可以将onClientLoad eventHandler添加到viewPanel:

https://xcellerant.net/2013/01/14/viewpanel_onclientload

单击寻呼机会导致onClientLoad被触发。

问题:是否可以捕获被点击的寻呼机的页码?

1 个答案:

答案 0 :(得分:1)

在XPage的onClientLoad CSJS代码中向pager中的每个页码添加一个on click事件。
使用dojo.query获取pager中的所有标签:

    dojo.query('[id$=pagerWithClickEvents] a').forEach(function(entry) {
        entry.addEventListener("click", function() {
            alert(this.innerHTML);
        });
    });

enter image description here

这个XPage是一个有效的例子:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view
    xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:viewPanel
        rows="3"
        value="#{view1}"
        id="viewPanel1">
        <xp:this.facets>
            <xp:pager
                partialRefresh="true"
                layout="Previous Group Next"
                xp:key="headerPager"
                id="pagerWithClickEvents">
            </xp:pager>
        </xp:this.facets>
        <xp:this.data>
            <xp:dominoView
                var="view1"
                databaseName="names.nsf"
                viewName="People">
            </xp:dominoView>
        </xp:this.data>
        <xp:viewColumn
            columnName="$17"
            id="viewColumn1">
            <xp:viewColumnHeader
                value="Name"
                id="viewColumnHeader1">
            </xp:viewColumnHeader>
        </xp:viewColumn>
        <xp:viewColumn
            columnName="$16"
            id="viewColumn4">
            <xp:viewColumnHeader
                value="E-Mail"
                id="viewColumnHeader4">
            </xp:viewColumnHeader>
        </xp:viewColumn>
        <xp:eventHandler
            event="onClientLoad"
            submit="false">
            <xp:this.script><![CDATA[
            dojo.query('[id$=pagerWithClickEvents] a').forEach(function(entry) {
                entry.addEventListener("click", function() {
                    alert(this.innerHTML);
                });
            });
        ]]></xp:this.script>
        </xp:eventHandler>
    </xp:viewPanel>
</xp:view>