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 Extension Library book の私の章から - 「onShow および onHide イベントは、ダイアログが表示される前、またはダイアログが閉じられる前に、クライアント側 JavaScript をトリガーします。」残念ながら、サーバー側の Javascript コードはそこでは機能しません。

非表示時に部分的な更新を起動できます。これは、XPages チームが提供してくれた高度な機能で、CSJS hide メソッドの 2 番目のパラメーターと、SSJS hide メソッドの唯一のパラメーターを提供します。基本的に行うことは、Dojo クライアント・サイド Javascript hide メソッドを呼び出して、リフレッシュしたい領域で XSP.partialRefreshGet() をトリガーすることだけです。

于 2013-09-05T11:58:22.523 に答える