我已经阅读了许多关于对多个元素进行部分刷新的博客文章,但我似乎无法让它工作。
我制作了一个“玩具”示例,一个带有两个字段和一个按钮的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>
答案 0 :(得分:1)
使用XSP.partialRefreshPost():http://avatar.red-pill.mobi/tim/blog.nsf/d6plinks/TTRY-84B6VP