0

Dojo データ・グリッドのデータ・ソースとしてカスタム REST サービスを使用できますか? 3 つの異なるデータベースのデータを 1 つのデータ グリッドに結合する必要があります。列データはソート可能である必要があります。REST サービスからの応答は正しいようです。JSON データを dojo グリッド列にバインドする際に問題があります。

4

2 に答える 2

2

非常に興味深い - カスタム REST サービスで同じことをテストしたところ、同じことがわかりました - グリッドの storeComponentId として参照されている場合は機能しません。

次の手順で動作するようになりました。

  • ページ リソースに 2 つの Dojo モジュールを含めて、データ ストアをセットアップします。
  • グリッド用の JSON データ ストアをセットアップするためのコードを含むパススルー スクリプト タグ (リソースが指定する Dojo モジュールを使用)
  • グリッドのストア プロパティは、タグ内のデータ ソース用に設定された変数に設定されます。(storeComponentId には XPages コンポーネント名が必要です)

変更を示すいくつかのスニペットを次に示します。

<xp:this.resources>
  <xp:dojoModule name="dojo.store.JsonRest"></xp:dojoModule>
  <xp:dojoModule name="dojo.data.ObjectStore"></xp:dojoModule>
</xp:this.resources>

...

<xe:restService id="restService1" pathInfo="gridData">

...

<script>
  var jsonStore = new dojo.store.JsonRest(
    {target:"CURRENT_PAGE_NAME_HERE.xsp/gridData"}
  ); 
  var dataStore = dojo.data.ObjectStore({objectStore: jsonStore});
</script>

...

<xe:djxDataGrid id="djxDataGrid1" store="dataStore">

詳細と完全なサンプルは次のとおりです。

http://xcellerant.net/dojo-data-grid-33-reading-custom-rest-service/

于 2014-01-09T17:21:00.977 に答える
0

最も簡単な方法は、拡張ライブラリから始めることです。カスタム JSON-Rest サービスのサンプルがあります。1 つのソースからデータをプルしますが、複数のソースからデータをプルするように拡張するのは簡単です。全体のパフォーマンスに注意することを強くお勧めします。

私がすること:

  • JSON をグリッドに吐き出す Bean を作成する
  • 1 つのデータベースでテストする
  • XPagesここでスレッドについて学びます
  • データベースごとに 1 つのスレッドを使用し、読み込み時間を短縮します
  • コンパレータでConcurrentSkipListMapを使用して、最初の JSON をユーザーにとって最も有用な並べ替え順序 (または設定または最後の実行からのもの) にします。

思い出の品: Java Collections Frameworkはあなたの友達です (時には難しいものです)。

それがどうなるか教えてください!

于 2013-11-11T19:02:00.310 に答える