我有一个树面板,我根据在组合框中选择的组动态生成根节点。根据选择的组,一个 JSON 将从服务器返回,并在遍历 JSON 对象后返回。我正在生成树面板的节点。如果选择了“MM”,它是所有其他组的父组。根节点将是“Mobile Measurement”,其所有子节点将是其他组。

var groupKey = field.getValue();
var groupName = field.getRawValue();
var subGroupName = '';
var treePanel = Ext.getCmp('permissionsTreePanel');
var len = [];
treePanel.setRootNode(null);
if(newValue){
Ext.Ajax.request({
    url:'.../GetAllUserPermissions.php',
    method:'POST',
    params:{groups:newValue},
    success:function(result, request){
        var json = result.responseText;
        var temp = Ext.decode(json);
        var obj = {};
        var mainGroup = {};
        var item = {};
        var menu = {};
        var children = [];
        var subGroups =[];
        var groups = '';
        var module = [{
            "text": "Administrator",  
            "leaf": true,
            "checked": false,
            "id":"GROUP_ADMIN",
            "formBind": true,
        "name":"GROUP_ADMIN"}];
        //Ext.Msg.alert('Message',Ext.encode(temp[groupKey]));
        groupTree = function (group,name) {
            for(var i=0;i<Object.keys(group).length;i++){
                for(var key in group[i]){
                    for(var n=0;n<Object.keys(group[i][key]).length;n++){
                        item = {  
                            "text": group[i][key][n],
                            "checked": false,
                            "id": key+"_"+group[i][key][n],
                            "name": key+"_"+group[i][key][n],
                            "formBind":true,
                            "leaf": true  
                        };
                        children.push(item);
                    }
                    menu = {"text": key,  
                        "leaf": false,
                        "id": key,
                        "children": children                        
                    };
                    module.push(menu);
                    children = [];   
                }
            }
            obj = {"text":name,
                "expanded": true,
                "formBind": true,
                "children": module
            };
            module = [{
                "text": "Administrator",  
                "leaf": true,
                "checked": false,
                "id":"GROUP_ADMIN",
                "formBind": true,
            "name":"GROUP_ADMIN"}];
            return obj;
        };
        if(groupKey != 'MM'){
            groupTree(temp[groupKey],groupName);
            treePanel.setRootNode(obj);
        } else {
            treePanel.getRootNode().set("text",groupName);               
            var i = 0;
            for(var key in temp[groupKey]){
                i++;
                mainGroup = groupTree(temp[groupKey][key],key);
                obj = {};
                treePanel.getRootNode().appendChild(mainGroup);
                if(i==2){
                    //break;
                }
            }
            treePanel.getRootNode().expand();
            //treePanel.setRootNode(subGroups);
            Ext.Msg.alert('Message',Ext.encode(subGroupName));
        }
    },
    failure:function(result, request){
    }
}); } else {
Ext.Msg.alert('Message','No value is selected!'); }
组已生成,但事件运行不佳。项目选择和事件分派存在一些错误。通过单击一个节点,另一个节点正在展开。这些未知行为导致树面板出现问题。
您的帮助将不胜感激!
提前致谢。:)