用ext的TreePanel 从后台加载了一棵树,但是要加载的时候 把所有的节点展开(tree.expandAll()),如果没有展开的话 再次保存的时候 以前勾选保存的节点都获取不了,只有新选择的节点可以保存
贴出代码 请高手指正一下function opensetpermit(id) {    var tree = new Ext.tree.TreePanel({
        autoScroll: true,
        renderTo: Ext.getBody(),
        containerScroll: true,
        root: new Ext.tree.AsyncTreeNode({ text: '组织机构', expanded: true, id: 'root' }),
        loader: new Ext.tree.TreeLoader({
        dataUrl: '../../DATA/getoratree.aspx?parentid=1&needcheck=true' + "&id=" + id,
            requestMethod: 'GET'
        }),
        listeners: { click: function(node) {
            if (node.id != '') {
            }
        }
        }
    });
    //加载这段可以点击加号的时候不造成错误
    tree.on('beforeload', function(node) {
        if (node.id != '') {
            tree.loader.dataUrl = '../../DATA/getoratree.aspx?needcheck=true&parentid=' + node.attributes.companyid + "&id=" + id;
        }
    });    tree.on('checkchange', function(node, flag) {
        //获取所有子节点
        node.cascade(function(node) {
            node.attributes.checked = flag;
            node.ui.checkbox.checked = flag;
            return true;
        });
        //获取所有父节点
        var pNode = node.parentNode;
        for (; pNode.id != "root"; pNode = pNode.parentNode) {
            if (flag || tree.getChecked(id, node.parentNode) == "") {
                pNode.ui.checkbox.checked = flag;
                pNode.attributes.checked = flag;
            }
        }
    });
    tree.expandAll();
    var rootnod;
    function mytoggleparent(node) {
        if (node.id != 'root') {
            node.ui.toggleCheck(true);
            node.attributes.checked = true;
            // alert(node.id);
            // rootnode = node.parentNode.id;
            mytoggleparent(node.parentNode);
        }    };
    var result = "";
    var i = 0;
    function mytoggleChecked(node) {
        //迭代复选=>父节点影响子节点选择,子节点不影响父节点
        if (node.hasChildNodes()) {
            node.eachChild(function(child) {
                if (child.attributes.checked == true) {
                    if (i > 0) {
                        result += ",";
                    }
                    result += (child.attributes.companyid);
                    i++;
                }
                mytoggleChecked(child); //处理子节点(第三级,有点晕阿) 
            })
        }
        
    };    var win = new Ext.Window({
        width: 500,
        height: 400,
        layout: 'fit',
        title: '访问网点授权',
        items: [tree],
        buttonAlign: "center",
        buttons: [
                { text: '保存', handler: function() {
                    mytoggleChecked(tree.root);
                    //alert("result" + result);
                    Ext.Ajax.request({
                        url: '../../DATA/setAccfgsbm.aspx',
                        method: 'post',
                        params: { fgsbms: result, id: id },
                        success: function(result, request) {
                            Ext.MessageBox.alert('', "保存成功", function() {
                                win.close();
                            });
                        },
                        failure: function(result, request) {                        }
                    })                }
                },
                { text: '取消', handler: function() { win.close(); } }
                ]
    });
    win.show();
}