extjs4 checkbox Tree级联checked
生成树的json中添加属性checked:true/false,则可在树生成时添加checkbox并将其显示默认是否选中
如下代码是将父节点被选中时,子节点级联选中
监听,tree的"checkchange"事件即可
1 this.listeners= { 2 "checkchange":Ext.bind(this.checkChange,this) 3 };
1 checkChange:function(node, checked, eOpts){ 2 if (checked == true) { 3 node.checked = checked; 4 //获得所有叶子节点,并将其选中状态与当前节点同步 5 var childNodes = node.childNodes; 6 for(var i=0;i<childNodes.length;i++){ 7 var child = childNodes[i]; 8 if(child.get("leaf")){ 9 child.set("checked", true); 10 } 11 } 12 } 13 14 //当前节点取消选中时,其叶子节点状态与其级联 15 if (!node.get("leaf") && !checked){ 16 node.cascadeBy(function(node){ 17 node.set('checked', checked); 18 }); 19 } 20 },