2015-08-08 41 views
0

我在使用对话框更改底层值时需要重复刷新时遇到问题。如何刷新使用对话框更新的重复图案

这是一个包含重复的DIV:

<xp:div style="display:none;"> 
    <xp:inputText id="linkages" value="#{procureDoc.Linkages}" multipleTrim="true" style="color:cornflowerblue;" multipleSeparator=";"> 
    </xp:inputText> 
</xp:div> 
<xp:label value="Linkages:" id="linkageLabel" style="font-weight:bold;"></xp:label> 
<xp:div id="linkageDiv"> 
    <ul> 
     <xp:repeat id="linkagesDisplayRepeat" rows="30" var="rowData" indexVar="index" value="#{procureDoc.Linkages}"> 
      <li> 
       <xp:text escape="true" id="computedField7"> 
        <xp:this.value><![CDATA[#{javascript:rowData;}]]></xp:this.value> 
       </xp:text> 
      </li> 
     </xp:repeat> 
    </ul> 
</xp:div> 

这里是从该对话框保存按钮。它确实发生在另一个自定义控件中,但我不认为这是问题所在。

<xp:button value="Save" id="saveButton"> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
     <xp:this.script><![CDATA[var linkageSelection = document.getElementById("#{id:linkageComboBox}").value; 
var linkageUpload = ""; 
if (linkageSelection == "Use Category") { 
    linkageUpload = document.getElementById("#{id:linkageCategoryComboBox}").value; 
} 
else { linkageUpload = linkageSelection;} 
var currentLinkages = document.getElementById("#{id:linkages}").value; 
if (currentLinkages == "") { 
    document.getElementById("#{id:linkages}").value = linkageUpload; 
} else { 
    document.getElementById("#{id:linkages}").value = document.getElementById("#{id:linkages}").value + ";" + linkageUpload; 
} 
XSP.closeDialog('#{id:linkageDialog}');]]></xp:this.script> 
    </xp:eventHandler> 
</xp:button> 

我可以把一个按钮上刚刚刷新的XPage,它会刷新我重复用在对话框中选择的值,而只是用我的保存按钮并没有做到这一点。

我确定我错过了一些简单的东西,但我只是看不到它。

回答

1

你可以使用的onComplete事件从SSJS事件处理程序来调用脚本CSJS像

XSP.partialRefreshGet("#{id:linkagesDisplayRepeat}"); 

刷新重复控制。

+0

虽然refreshMode =“complete”不应该刷新吗? –

+0

确实,它应该加载整个页面。重复设置tp局部刷新模式? –

+0

我不明白“重复设置为部分刷新模式”。所有代码都在上面,我无法找到重复本身的部分刷新设置。 –

1

客户端closeDialog()方法还有第二个参数,表示要部分刷新的组件ID。这基本上为你添加了onComplete。

SSJS相应的方法使用组件的ID随后刷新为唯一参数(显然该方法在关闭的组件上调用,这是CSJS中的第一个参数)。

相关问题