Extjs4.xtreePanel选中父节点时子节点全部选中,有子节点选中是父节点也选中

         Extjs4.x好像没有提供treePanel的节点选中联动,今天从别的地方找了个方法整理处理以便以后使用!

1.两个重要的方法

//选中子节点
function
setChildChecked(node,checked){ node.expand(); node.set({checked:checked}); if(node.hasChildNodes()){ node.eachChild(function(child) { setChildChecked(child,checked); }); } }
//选中父节点
function setParentChecked(node,checked){ node.set({checked:checked}); var parentNode = node.parentNode; if(parentNode !=null){ var flag = false; parentNode.eachChild(function(child) { if(child.data.checked == true){ flag = true; } }); if(checked == false){ if(!flag){ setParentChecked(parentNode,checked); } }else{ if(flag){ setParentChecked(parentNode,checked); } } } }

2.给 treePanel 添加如下事件,直接调用以上两个方法

"checkchange": function(node,checked,eOpts) {
               setChildChecked(node,checked);
               setParentChecked(node,checked); 
         }

3.运行效果图

 

 

posted @ 2013-08-24 21:32  telzhou  阅读(809)  评论(1编辑  收藏  举报