87,907
社区成员
发帖
与我相关
我的任务
分享
//这个方法是选择父节点,自动选中所有的子节点
function a(node,checked){
checked?node.expand():node.collapse();
if(node.hasChildNodes()){
node.eachChild(function(child) {
child.attributes.checked = checked;
var cb = child.ui.checkbox;
if(cb) cb.checked = checked;
a(child,checked);
});
}
}
//这个方法是选择子节点,自动选中父节点的父节点
function b(node,checked){
if(checked){
node.expand();
var parentNode = node.parentNode;
if(parentNode!=undefined){
parentNode.attributes.checked = checked;
var cb = parentNode.ui.checkbox;
if(cb) cb.checked = checked;
b(parentNode,checked);
}
}
}
//这两个方法要在treepanel的checkchange里调用.
tree.on('checkchange', function(node, flag) {
// 所有父节点选中
// Ext.log(node+"======"+node.parentNode);
// j=node;
if (node.parentNode.id != 'root') {// 判断是不是root节点
if (flag || tree.getChecked(id, node.parentNode) == "") {// 如果该节点的父节点还有子节点被选者则父节点继续选择
node.parentNode.ui.toggleCheck(flag);
node.parentNode.attributes.checked = flag;
node.parentNode.fireEvent('checkchange', node.parentNode, flag);//递归调用
}
}
});