如何正确刷新Xpages中的多个项目

时间:2016-05-21 14:25:48

标签: xpages

我已经阅读了许多关于对多个元素进行部分刷新的博客文章,但我似乎无法让它工作。

我制作了一个“玩具”示例,一个带有两个字段和一个按钮的Xpage。两个字段都绑定到sessionScope计数器。按钮递增计数器并在包含的面板上进行部分刷新。

我想对第一个字段进行局部刷新,这不在面板中[在我的真实Xpage中,两个字段在表单上相距很远。

尝试了很多不同的事情让它发挥作用,但都没有奏效。甚至可以这样做吗?

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex"
    xmlns:xc="http://www.ibm.com/xsp/custom"
    style="background-position:center left"
    xmlns:on="http://www.openntf.org/domino/xsp" viewState="nostate"
    xmlns:debug="http://www.openntf.org/xsp/debugtoolbar">

    First Var<br></br>

    <xp:text escape="true" id="computedField1" value="#{sessionScope.number}">
    </xp:text>

        <br></br>
        <xp:br></xp:br>
        <br></br>

    Second Var<xp:panel id="pnl1">
        <xp:text escape="true" id="computedField2" value="#{sessionScope.number}">
        </xp:text>
        <br></br>
        <br></br>
        <xp:button value="Label" id="button1">
            <xp:eventHandler event="onclick" submit="true"
                refreshMode="partial" refreshId="pnl1" execMode="partial"
                execId="pnl1">
                <xp:this.action><![CDATA[#{javascript:var t = sessionScope.number + 1;
sessionScope.number = t;}]]></xp:this.action>
            </xp:eventHandler>
        </xp:button>
    </xp:panel>

</xp:view>

阅读Knut的链接,让它发挥作用。我对按钮的事件处理程序进行了更改,并且它有效。这是代码:

            <xp:eventHandler event="onclick" submit="true"
                refreshMode="partial" refreshId="pnl1" execMode="partial"
                execId="pnl1">
                <xp:this.action><![CDATA[#{javascript:var t = sessionScope.number + 1;
sessionScope.number = t;}]]></xp:this.action>
                <xp:this.onComplete><![CDATA[XSP.partialRefreshPost("#{id:computedField1}");]]></xp:this.onComplete>
            </xp:eventHandler>

1 个答案:

答案 0 :(得分:1)