2

ツリー パネル内のすべてのノードをトラバースしようとしています。問題は、 を呼び出す前にノードを展開しないとnode.eachChild()、ノードが子を持たないと判断することです。(あったとしても)

私の jsfiddle を見ると、ノードを展開せずに Traverse ボタンをクリックすると、ルート ノードとその 3 つの子ノードのみが表示されます。戻ってすべての子ノードを展開し、それらを閉じてからもう一度ボタンをクリックすると、すべてのノードが表示されます。

http://jsfiddle.net/sQ97F/

onReady の直後にすべての子ノードを通過するように、ツリー パネルにすべての子ノードをロードさせるにはどうすればよいですか?

注: また、onLoad() でノードを展開したくないので、tree.getRootNode().expand() を使用するようにハッキングすることは良い解決策ではありません。

4

1 に答える 1

1

loader: new Ext.tree.TreeLoader({ preloadChildren: true })を TreePanel 構成に追加すると機能するはずです。

new Ext.tree.TreePanel({
    renderTo: Ext.getBody(),

    loader: new Ext.tree.TreeLoader({ preloadChildren: true }), //New Config


    id: 'mainTree',
    title: 'Packages',
    useArrows: true,
    autoScroll: true,
    containerScroll: true,
    frame: true,
    rootVisible: false,
    root: rootNode,
    buttons: [traverse]
});
于 2013-08-22T20:35:21.443 に答える