1

NODE オプション expand = false でダイナツリーを作成しています。しかし、ツリーを表示すると、最初にすべてが消費されたことが示されます。初期段階ですべて崩壊したツリーを取得する方法。以下は私のコードです

$(function(){
            // Attach the dynatree widget to an existing <div id="tree"> element
            // and pass the tree options as an argument to the dynatree() function:
            $("#tree").dynatree({
                onActivate: function(node) {
                    // A DynaTreeNode object is passed to the activation handler
                    // Note: we also get this event, if persistence is on, and the page is reloaded.
                    //alert("You activated " + node.data.key);
                },
                persist: false,
                checkbox: true,
                generateIds: false,

                classNames: {
                    checkbox: "dynatree-checkbox",
                    expanded: "dynatree-expanded"
                },
                selectMode: 3,
                children: {!JsonString},
                onSelect: function(select, node) {
                    // Get a list of all selected nodes, and convert to a key array:
                    var selKeys = $.map(node.tree.getSelectedNodes(), function(node){
                        return node.data.key;
                    });
                    jQuery(document.getElementById("{!$Component.selectedKeys}")).val(selKeys.join(", "));

                    // Get a list of all selected TOP nodes
                    var selRootNodes = node.tree.getSelectedNodes(true);
                    // ... and convert to a key array:
                    var selRootKeys = $.map(selRootNodes, function(node){
                        return node.data.key;
                    });
                },

            });

        });
4

1 に答える 1

1

私のダイナツリーでは、初期化でAJAXを使用し、ツリー全体を展開しますが、コードをこのように変更すると、次のことが役立つ可能性があります。

onPostInit: function(isReloading, isError) {
    this.$tree.dynatree('getRoot').visit(function(node){
        node.expand(false);
    });
}
于 2013-02-28T08:17:12.403 に答える