extjs CheckTree 的相关应用

var tree= new Ext.tree.TreePanel({

        id:'ptree',

        region:'west',

        layout:'anchor',

        border:false,

        rootVisible: false,

        root:{},

        listeners:{

render: function() {

authorityTree(tree); /*渲染树*/

},

            checkchange: function(node, state) {

                //选中父节点让相应的子节点选中

//                node.cascade(function(node){

//                    node.attributes.checked = state;  

//                    node.ui.checkbox.checked = state;

//                    return true;   

//                });

                if (node.parentNode != null) {

                    //选中子节点让相应的父节点选中

                    var pNode = node.parentNode;

                    if (state || Fpanel.getChecked(id, pNode) == "") {

                        pNode.ui.toggleCheck(state);// 触发父节点被选中

                        pNode.attributes.checked = state; 

                    } 

                }

            }

        }

    });

/**

 *初始化菜单树

 */

var authorityTree = function(tree) {

var re = new JsonRequest();

    re.category = CATEGORY.READONLY;

    re.params.param = {};

    Ext.Ajax.request({

url:'***.json',

     success: function(re, op) {

var obj = Ext.decode(re.responseText).ResponseObject;

var ns = {}, f = tree;

ns.children = obj;

var selectedNode = null, selectedId = f.selectedId;

function appendChild(node, o) {

if (node.id == selectedId) {

selectedNode = node;

}

if (o.children != null && o.children.length > 0) {

for (var a = 0; a < o.children.length; a++) {

var n = new Ext.tree.TreeNode({

id: o.children[a].id,

text: o.children[a].text,

children: o.children[a].children,

checked: false

});

node.appendChild(n);

appendChild(n, o.children[a]);

 

}

}

}

     var r = new Ext.tree.TreeNode({

     id: 'NULL',

     text: '系统菜单'

     });

     appendChild(r, ns);

     f.setRootNode(r);

if (selectedNode != null) {

f.selectPath(selectedNode.getPath());

}

     tree.registerNode(r); /*注册节点, 不然getNodeById(node.id)找不到这个节点*/

     tree.root.expand(true);

     },

        failure: function() {

            tree.render();

            Ext.MessageBox.show({

                title: '提示',

                msg: '服务器忙,请稍后重试!',

                buttons: Ext.MessageBox.OK,

                icon: Ext.MessageBox.ERROR

            });

        },

     jsonData: re

    })

}

/**

 *初始化checkTree选中为false

 */

var treeCheckfalse = function(tree)

{

var nodes = tree.getChecked(); 

if(nodes && nodes.length){

for(var i=0;i<nodes.length;i++){

 //设置UI状态为未选中状态

 nodes[i].getUI().toggleCheck(false);

 //设置节点属性为未选中状态

 nodes[i].attributes.checked=false;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值