extjs tree check 级联选择

来源:互联网 发布:centos和redhat哪个好 编辑:程序博客网 时间:2024/05/17 00:12

extjs4 tree check 级联选择 

实现效果:



关键代码:

function changeAllNode(node, isCheck) {    allChild(node, isCheck);    allParent(node, isCheck);    function allChild(nodec, isCheckc) {        var chileNodes = nodec.childNodes;        Ext.Array.each(chileNodes, function (nd) {            if (nd.hasChildNodes()) {                nd.set('checked', isCheck);                allChild(nd, isCheckc);            } else {                nd.set('checked', isCheck);            }        });    }function allParent(nodep, isCheckp) {        if (!isCheckp) {            nodep.set('checked', isCheck);            if (brothNodesIsTrue(nodep)) {            } else {                if (nodep.getDepth() > 1) {                    allParent(nodep.parentNode, isCheckp);                }            }        } else {            if (nodep.getDepth() > 1) {                nodep.set('checked', isCheck);                allParent(nodep.parentNode, isCheckp);            } else {                nodep.set('checked', isCheck);            }        }    }function brothNodesIsTrue(node) {        var flag = false;        var brothNodes = node.parentNode.childNodes;        Ext.Array.each(brothNodes, function (bn) {            if (bn.get('checked')) {                flag = true;                return false;            }        });        return flag;    }} 


监听选择事件:

tree.on('checkchange', function (node, checked) { changeAllNode(node, checked) });



3 0
原创粉丝点击