示例代码:
<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事件代码)后,服务器端停止响应,甚至选项卡切换也停止。
谢谢。
发布于 2013-06-05 20:32:29
我知道这是一个有点有线的解决方案,但是尝试一下,使用jsonRpcService从ClientSide调用保存。
因此,您可以在客户端的每个tap onClick事件中添加一个函数,这样就不会阻塞ServerSide的tap键函数。
<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方法对它进行测试。
https://stackoverflow.com/questions/16914950
复制相似问题