Extjs tree 的级联选择
/**
* 树级联选择节点
*/
function changeAllNode( node,isCheck){
allChild(node,isCheck);
allParent(node,isCheck);
function allChild (nodec,isCheckc){
var chileNodes = nodec.childNodes;
// alert(chileNodes.length);
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;
}
}