Extjs4.x完美treepanel checkbox无限级选中与取消
注:当node选中, childNodes逐级全部选中. parentNode当子node全部选中时逐级自动选中,nodes未全部选中, parentNode逐级自动取消选中
在javascript中加入下面的代码,
/*向上遍历父结点*/
var nodep=function(node){
var bnode=true;
Ext.Array.each(node.childNodes,function(v){
if(!v.data.checked){
bnode=false;
return;
}
});
return bnode;
};
var parentnode=function(node){
if(node.parentNode != null){
if(nodep(node.parentNode)){
node.parentNode.set('checked', true);
}else{
node.parentNode.set('checked', false);
}
parentnode(node.parentNode);
}
};
/*遍历子结点 选中 与取消选中操作*/
var chd=function(node,check){
node.set('checked',check);
if(node.isNode){
node.eachChild(function (child) {
chd(child,check);
});
}
};
/*treepanel为tree名称*/
treepanel.on('checkchange', function (node, checked) {
if(checked){
node.eachChild(function (child) {
chd(child,true);
});
}else{
node.eachChild(function (child) {
chd(child,false);
});
}
parentnode(node); //进行父级选中操作
},treepanel);
作者:wangqc
出处:http://www.cnblogs.com/wangqc/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-wangqc。