2015-08-08 42 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中的第一個參數)。

相關問題