Dojoグリッド(1.5)をうまく再生するために少し時間があります。具体的には、結果セットのデータを行に折りたたんで行を展開できるグリッドを実装するために、約2週間の作業を費やしました。データは、ItemFileReadStoreをストアとして使用して、JSON形式のフルセットとして提供されます。以降の並べ替えやページングは、アプリケーションから新しいjsonを取得し、URLに新しいクエリパラメーターを渡すことで処理されます。
ネストされたデータは、2層の深さしかありませんでした。常に表示される最上層と、最上層と同じ構造の子データの配列です。各ノードには一意のIDとクラスターIDがあります。親ノードでは、一意のIDとクラスターIDが一致します。
私は当初TreeGridに非常に興奮していましたが、必要な処理を実行するためにどのようにフォーマットできるかわかりませんでした。つまり、「要約行」とnullセル(???)でいっぱいの余分な行を削除しました。クエリを1つのクラスターのみに集中させない限り、削除する方法を説明します。私はテスト例を研究し、自分で多くのテストページを作成し、forestModelを理解しようとしましたが、これは私が知る限り不要でした...ドキュメントがほとんど見つからず、オンラインで見つけた情報源は、TreeGridが信頼できない可能性があることを示唆していました...
そこで、dataGridに展開可能/折りたたみ可能な行を実装しようと決心しました。
JSONデータをフラット化し、最上位ノードであることを示す別の属性を追加しました('alwaysShow' = true)。プログラムでグリッドを構築し、grid.filter()を適用して、これらの最上位ノードのみをプルしました。ItemFileReadStore _FetchItems "filter"メソッドを拡張して、ANDの代わりにORクエリを実行できるようにフィルターを変更し、キーが配列を指すように変更しました-最上位ノード(セル内の小さな+/-アイコン)をクリックすると、親ノードのクラスターIDがgrid.filter.allowed []に追加され、フィルターが更新され、そのcluster_id値を持つノードを表示できるようになります。
これは、5つのレコードの小さなテストセットで正常に機能しました(idは少しスラッグだと言っていますが...)-しかし、今はアプリケーションから最大900行を引き出し、大きなクラスター(約80行)を拡張すると、フィルタの更新で青と白の非常に長い点滅。私は一日のほとんどをファイアバグに足を踏み入れてどこで起こっているのかを見つけようとして過ごしましたが、道場のロジックは非常に広がっています。_Grid.jsdefaultUpdateを呼び出す前に発生しているようです。
とてもひどいので、TreeGridで再試行することを検討しています。私はまた、これを手作業で行うことを検討しています... Dojoを最初に機能させるために多くの時間を費やしたことで、私は自分自身を蹴っています。誰かが何かアドバイスがあれば、商用の「JSON->折りたたみ可能な行のあるテーブル」ライブラリも検討します...
何か提案や洞察はありますか?点滅の問題に精通している、またはTreeGridをニーズに適合させる方法を教えてください。私はこれが少し暴言であることを知っています...助けてくれてありがとう。
-ロビー
編集:私は最終的に、Dojoに必要なことを実行させることをあきらめ、1日以内に自分でコーディングしました。3週間の最善の使用ではありません...