Xpages-如何在没有人工交互的情况下自动切换到下一个寻呼机?

时间:2014-04-23 13:32:29

标签: xpages pager

我想创建一个仪表板,在视图中显示10行记录,然后系统会在一定时间后自动切换到下一页。 是不是可以将定时器设置为在XPage中的下一页中自动切换寻呼机?如果是,您是否有任何样本代码供参考?感谢。

2 个答案:

答案 0 :(得分:1)

我前段时间创建了这样的解决方案。也许它对你也有帮助。

在requestScope“rowsPerPage”中,您可以定义每页应显示的行数,并使用requestScope“secondsPerPage”定义更改页面后的秒数。到达最后一页后,它会再次从第一页开始。

<xp:this.beforeRenderResponse><![CDATA[#{javascript:
    requestScope.rowsPerPage = 4;
    requestScope.secondsPerPage = 2;
    if (viewScope.currentPage == null) {
        viewScope.put("currentPage", 1);
    } else {
        if (getComponent("viewPanel1").getRowCount() > viewScope.currentPage * requestScope.rowsPerPage) {
            viewScope.currentPage++;
            getComponent("viewPanel1").gotoNextPage();
        } else {
            viewScope.currentPage = 1;
            getComponent("viewPanel1").gotoFirstPage();
        }
    }
}]]></xp:this.beforeRenderResponse>
<xp:scriptBlock
    id="scriptBlockRefresh">
    <xp:this.value>
        <![CDATA[
            setInterval(function() {
                XSP.partialRefreshPost("#{id:refreshPanel}", {})
            }, #{requestScope.secondsPerPage} *1000)
        ]]>
    </xp:this.value>
</xp:scriptBlock>

<xp:panel
    id="refreshPanel">
    <xp:viewPanel
        rows="#{javascript:try {requestScope.rowsPerPage} catch(e) {30}}"
        id="viewPanel1"
        xp:key="facet1"
        viewStyle="width:40em">
        <xp:this.facets>
            <xp:pager
                partialRefresh="true"
                layout="Group"
                xp:key="headerPager"
                id="pager1"
                alwaysCalculateLast="true">
            </xp:pager>
        </xp:this.facets>
        <xp:this.data>
            <xp:dominoView
                ...>
            </xp:dominoView>
        </xp:this.data>
        <xp:viewColumn
            ...>
        </xp:viewColumn>
        <xp:viewColumn
            ...>
        </xp:viewColumn>
    </xp:viewPanel>
</xp:panel>

答案 1 :(得分:0)

我还没有尝试过,但你需要使用CSJS在预定义的秒数后使用XSP.partialRefreshGet()触发部分刷新,这是服务器端无法完成的。

您可以通过编程方式设置视图的“first”属性,获取或(在第一个实例中)设置viewScope变量。您需要确保在页面刷新期间不会多次更新,可能是通过设置requestScope变量并检查是否已经设置。