2017-07-20 4 views
1

ページの前半(垂直)にgridxがあり、後半にcontentViewerがあるページがあります。ユーザーがグリッドからアイテムをクリックすると、それぞれのイメージが読み込まれて正常に動作しています。ユーザーがグリッドから2番目のアイテムをクリックすると、ビューアは2番目のイメージをロードしていますが、最初のイメージも保持しているという問題があります(イメージはタブとして開きます)。だから、私は最初の画像を2番目の画像を読み込むときに取り除く必要があります。 ContentViewerから項目を取得して新しい項目をロードする前に前の項目を閉じる方法がありますか?ecm.widget.viewer.ContentViewerの取得方法

答えて

0

ContentViewerのgetViewersStatus()メソッドは、現在開いているすべてのアイテムを含む構造体を返します。次に、これを反復して、それぞれに対してcloseItem()を呼び出します。

しかし、Navigator 2.0.3.3以降を使用している場合は、ContentViewerウィジェットでcloseAllViewers()を呼び出して、開いているすべてのアイテムを閉じるようにプロンプ​​トを表示して変更を保存します。

参考:https://www.ibm.com/support/knowledgecenter/en/SSEUEX_2.0.3/com.ibm.developingeuc.doc/doc/JavaScriptdoc/symbols/ecm.widget.viewer.ContentViewer.html

+0

お返事ありがとうございます。 "変更が保存されていない、および/または印刷中の開いているすべてのビューアに関する情報を含むデータ構造を返します。"というメッセージが表示されます。私がこの方法を使用したとき、私はアイテムを持っていませんでした。また、closeAllViewers()を使用しようとしましたが、そのメソッドが表示されないのは奇妙です。 ecm.widget.viewer.ContentViewerを調べても、そのメソッドを見つけることはできません。私のICNバージョン(バージョン:2.0.3ビルド:icn203.555)で何かが間違っている可能性があります。最後に、私はそれを働かせて答えとして投稿します。 –

0

[OK]を、ここでは、私はこれを達成するために何をしたかです。

if(this.imgViewer.mainTabContainer.getChildren().length>0){ 
       array.forEach(this.imgViewer.mainTabContainer.getChildren(),function(child){ 
        this.imgViewer.mainTabContainer.removeChild(child); 
       }); 
      }