您的位置:首页 > Web前端 > JavaScript

ExtJS2.2树的级联选择

2014-05-04 10:08 423 查看
在做项目的时候要用到树的级联选择,在我的影响中貌似ExtJs 2.2没有自带的级联选择。然后就有了下面的代码:

tree.on('checkchange',function(node,checked){
selParent(node,checked);
selChild(node,checked);
},tree);
//这个方法是选择父节点,自动选中所有的子节点
function selParent(node,checked){

if (node.hasChildNodes()) {
node.eachChild(function(child) {
child.attributes.checked = checked;
var cb = child.ui.checkbox;
if (cb){
cb.checked = checked;
selParent(child, checked);
}
});
}

}
//这个方法是选择子节点,自动选中父节点的父节点
function selChild(node, checked){
if(checked){
var parentNode = node.parentNode;
if(parentNode != undefined){
parentNode.attributes.checked = checked;
var cb = parentNode.ui.checkbox;
if(cb){
cb.checked = checked;
selChild(parentNode, checked);
}
}
}else{
var flag = false;
if(node == null){
return;
}
var parentNode = node.parentNode;
if(parentNode != undefined){
if(parentNode.hasChildNodes()){
parentNode.eachChild(function(child){
var cd = child.attributes.checked;
if(cd == true){
flag = true;
}
});
}
}
if(!flag){
parentNode.attributes.checked = checked;
var cb = parentNode.ui.checkbox;
if(cb){
cb.checked = checked;
selChild(parentNode, checked);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: