我似乎遇到了扩展库对话框的问题,或者没有刷新或缓存值。
请参阅下面的简化示例。基本上该按钮会弹出一个扩展库对话框。对话框中包含一个带有@Unique()的计算字段作为其值。在我们的prod服务器上,按下按钮时不会更新该号码。它适用于第一次按下按钮但后续按下不会更新数字。
这仅在生产中发生,并且类似问题仅在过去几周内开始发生。它仍然适用于我们的Dev和QA服务器。
我的管理员联系人现在不在,所以我不知道服务器之间版本的差异,但是当我得知这些信息时我会发布它们。
以下是代码:
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xc="http://www.ibm.com/xsp/custom"
xmlns:xe="http://www.ibm.com/xsp/coreex">
<xp:this.resources>
<xp:script src="/Validation_SSJS.jss" clientSide="false"></xp:script>
</xp:this.resources>
<xp:br></xp:br>
<xp:br></xp:br>
<xe:dialog id="dlgMsg2" title="Message" style="width:400px;">
<xp:text escape="true" id="computedField1" value="#{javascript:return @Unique();}">
</xp:text>
</xe:dialog><xp:br></xp:br>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:button value="Popup Message" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:var dlg = getComponent("dlgMsg2");
dlg.show();}]]></xp:this.action>
</xp:eventHandler></xp:button>
</xp:view>
更新:问题出现在IE和Firefox中,因此它似乎与浏览器无关。我猜它不是Pistolstar相关的,因为我之前有PS和Xpages的问题。 Pistolstar发现了这个问题,当我得到更多细节时,我会更新我以前的帖子
更新:我检查过,我们的QA和Prod服务器的扩展库版本为8.5.3.20111208-0717。
答案 0 :(得分:1)
我提出了解决此问题的“解决方法”。我为对话框的onShow事件添加了一个刷新事件处理程序。
<xe:dialog id="dlgMsg2" title="Message" style="width:400px;">
<xp:text escape="true" id="computedField1" value="#{javascript:return @Unique();}">
</xp:text>
<xp:eventHandler event="onShow" submit="true"
refreshMode="partial" refreshId="computedField1">
</xp:eventHandler></xe:dialog>
了解潜在问题仍然很有趣。
答案 1 :(得分:0)
在对话框的All Properties部分,有一个名为'RefreshOnShow'的属性。
设置为true时,每次面板从隐藏状态变为可见状态时,面板的内容都将刷新。这应该可以解决您所看到的问题。
答案 2 :(得分:0)
可能不太可能,但xsp.properties中的页面持久性选项可能会改变页面在不同环境中的行为方式。数据库和服务器上有xsp.properties。 XPages Portable Command Guide有关于不同设置的更多详细信息,但设置可能会更改请求之间保留的内容。