首先在TreePanel裏面加一個事件checkchange
然後在事件裏寫入一下內容:
// checkchange事件
checkAllchild_click : function(node,checked){
var
me=this;
if (node.data.leaf == false) {
if (checked) {
// 打開節點
node.expand();
// 遍歷孩子
me.setChildNode(node.childNodes,checked);
} else {
node.expand();
me.setChildNode(node.childNodes,checked);
}
} else { // 單擊葉子時候
if (checked) { // 未被選中時,取消父節點的選擇狀態
me.setParentNode(node,checked);
}
}
},
//反選父節點
setParentNode:function(node,checked){
node.set('checked', checked);
if(node.parentNode!=null){
this.setParentNode(node.parentNode, checked);
}
},
//選子節點
setChildNode: function (childNodes,checked){
var
node;
for(var i=0;i<childNodes.length;i++){
node= childNodes[i];
node.set('checked', checked);
if(node.childNodes.length>0){
this.setChildNode(node.childNodes, checked);
}
}
}
最後注意一點複選框必須是自己後臺傳過來的,必須是自己寫的,不能用工具畫(比如sencha),否則無效。