1

私のアプリケーションには 2 つの編集可能なTreePanelがあり、それぞれがツリーを表示するため、それぞれに独自のTreeStore定義があります。最初は、これらのストアのデータはまったく同じで、サーバーからロードされた大きな JSON ツリーです。したがって、2 つの HTTP リクエストを作成して同じ JSON ツリーをロードする必要がないことが理想的です。これは非常にコストのかかる操作です。

これら 2 つの TreePanel の基になる TreeStore オブジェクトは異なる必要があることに注意してください。そうしないと、一方のパネルでの変更がすぐに他方のパネルにカスケードされます。

しかし、2 つの HTTP リクエストを作成することを避けて、1 つの TreeStore にロードされたデータを別の TreeStore に渡すことができるかどうかを知っている人はいますか?

どんなアドバイスでも大歓迎です。ありがとうございました!

4

1 に答える 1

0

ここでこれに対する答えを見つけました:

http://www.clintharris.net/2011/how-to-use-extjs-4-treepanels-with-both-static-data-and-model-stores/

秘訣は、2 番目の TreeStore で setRootNode() メソッドを使用し、データを渡すことです。最初の TreeStore からデータを取得するために、ツリーを再帰的に反復し、その文字列 JSON 表現を構築するだけで済みました。次に Ext.decode() メソッドを使用してオブジェクトに変換します。この変換はかなり無駄ですが、深い copy() は機能しませんでした - ExtJS のバグです。それでも、これはサーバーにヒットするよりもはるかに高速です。

于 2013-03-06T07:04:30.763 に答える