0

我似乎遇到了扩展库对话框不刷新或缓存值的问题。

请参阅下面非常简化的示例。基本上这个按钮会弹出一个扩展库对话框。对话框中包含一个以@Unique() 作为其值的计算域。在我们的产品服务器上,按下按钮时数字不会更新。它在第一次按下按钮时起作用,但随后的按下不会更新数字。

这仅在生产中发生,并且在过去几周内才开始出现类似问题。它在我们的开发和质量检查服务器上仍然可以正常工作。

我的管理员联系人现在不在,所以我不知道服务器之间的版本差异,但我会在了解这些信息时发布它们。

这是代码:

<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。

4

3 回答 3

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>

了解潜在问题仍然很有趣。

于 2012-09-12T16:14:21.733 回答
0

在对话框的所有属性部分,有一个名为“RefreshOnShow”的属性。

当设置为 true 时,面板的内容将在每次面板从隐藏状态变为可见状态时刷新。这应该可以解决您看到的问题。

于 2012-09-11T20:03:27.403 回答
0

这可能不太可能,但 xsp.properties 中的页面持久性选项可能会改变页面跨环境的行为方式。数据库和服务器上有 xsp.properties。XPages Portable Command Guide 提供了有关不同设置的更多详细信息,但设置可能会更改请求之间保留的内容。

于 2012-09-12T12:01:26.363 回答