0

我觉得这很奇怪,但我无法从扩展库对话框的“DOJO”事件“onHide()”和“onShow()”中获得任何输出。我只是想访问一个 viewScope 变量并在对话框的“onHide()”事件中为其设置一些值,但这似乎不起作用。即使是简单的 print() 语句也不会在“onHide()”或“onShow()”事件中执行。是否需要更改任何设置或添加其他设置才能使这些事件正常工作?我错过了什么吗?这是代码:

<xp:eventHandler event="onHide" submit="true" refreshMode="complete">
    <xe:this.action><![CDATA[#{javascript:
        //Pass the ratings to the parent window
        var glVect = viewScope.get("Goal_Rate_data");
        print(glVect[0][0] + "@@@" + glVect[0][1] + "@@@" + glVect[0][2]);          
        glVect.get(0).setElementAt("testing assignment",1);
    }]]></xe:this.action>
</xp:eventHandler>`
4

1 回答 1

0

没错,它们是 Dojo 事件,所以只有 CSJS。从我的 XPages 扩展库一书中的章节 - “onShow 和 onHide 事件在显示对话框之前或关闭对话框之前触发客户端 JavaScript。” 恐怕服务器端 Javascript 代码在那里不起作用。

您可以在隐藏时触发部分刷新。这是 XPages 团队为我们提供的一些高级功能,为 CSJS hide 方法提供了第二个参数,也是 SSJS hide 方法的唯一参数。基本上所做的就是调用 Dojo 客户端的 Javascript 隐藏方法并在要刷新的区域上触发 XSP.partialRefreshGet()。

于 2013-09-05T11:58:22.523 回答