• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
HS.H °
财富来源于拼搏, 命运取决与奋斗!
博客园    首页    新随笔    联系   管理    订阅  订阅

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。

posted @ 2013-07-03 20:03  没有终点的列车  阅读(683)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3