2013-06-04 24 views
1

我在我的xpage上有一個選項卡式面板,我想實現的是如果用戶切換選項卡,那麼應該保存當前選項卡數據,因爲我在tabPanel的onClick上編寫了代碼,但是這會停止進一步服務器端代碼運行。XPages:OnClick的TabPanel

樣品的編號:

<xp:tabbedPanel id="tabbedPanel1"> 
    <xp:tabPanel label="Tab1" id="tabPanel1"> 
    <xp:label id="label1" value="Good Morning"></xp:label> 
    </xp:tabPanel> 
    <xp:tabPanel label="Tab2" id="tabPanel2"> 
    <xp:eventHandler event="onclick" submit="true" refreshMode="complete"> 
    <xp:this.action><![CDATA[#{javascript:print("Click on Tab2");}]> 
     </xp:this.action> 
    </xp:eventHandler> 
    <xp:label id="label2" value="Good Afternoon"></xp:label> 
    </xp:tabPanel> 
    <xp:tabPanel label="Tab3" id="tabPanel3"> 
    <xp:label id="label3" value="Good Evening"></xp:label> 
    </xp:tabPanel> 
</xp:tabbedPanel> 

問題:點擊tabPanel2(其具有onClick事件代碼)之後,服務器側停止響應和即使標籤開關停止。

謝謝。

+0

我重複了這個問題,但是你的代碼在行有一個缺少的方括號「]」。應該是:<![CDATA [#{javascript:print(「Click on Tab2」);}]]> Newbs

回答

1

我知道這是一個有點有線的解決方案,但嘗試使用jsonRpcService調用ClientSide的保存。

因此,您可以在客戶端的每個tap onClick事件中添加一個函數,而不會阻塞ServerSide標籤的功能。

<xp:text value="#{viewScope.save}"></xp:text> 

<xp:tabbedPanel id="tabbedPanel1" selectedTab="tabPanel1"> 
    <xp:tabPanel label="Tab1" id="tabPanel1" 
     onclick="saveDokumentHelper.save();"> 
     <xp:label id="label1" value="Good Morning"></xp:label> 
    </xp:tabPanel> 
    <xp:tabPanel label="Tab2" id="tabPanel2" 
     onclick="saveDokumentHelper.save();"> 
     <xp:label id="label2" value="Good Afternoon"></xp:label> 
    </xp:tabPanel> 
    <xp:tabPanel label="Tab3" id="tabPanel3" 
     onclick="saveDokumentHelper.save();"> 
     <xp:label id="label3" value="Good Evening"></xp:label> 
    </xp:tabPanel> 
</xp:tabbedPanel> 

<xe:jsonRpcService id="jsonRpcService1" 
    serviceName="saveDokumentHelper" state="true"> 
    <xe:this.methods> 
     <xe:remoteMethod name="save"> 
      <xe:this.script><![CDATA[currentDocument.save(); 
viewScope.put("save","saved");]]></xe:this.script> 
      </xe:remoteMethod> 
     </xe:this.methods> 
    </xe:jsonRpcService> 

請記住它只是一個可能性,我想到它可能有一些問題。我只用viewScope變量測試過它,它工作。我還沒有使用Document.save方法對其進行測試。

+0

謝謝,這聽起來不錯。會嘗試讓你知道。再次感謝。 – Prabhakar

+0

如果這有助於您,請考慮:http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –