ext4 treePanel 设计节点级联选中
1、panel代码:
id : 'addRolePanelId2',
title: '权限',
region : 'center',
layout : 'fit',
height:400,
buttonAlign : 'center',
root:{
id:'root',
text:'权限列表',
expanded:true,
checked : false,
leaf:false
},
store: addRolePermissionStore,
autoScroll:true,//自动出现滚动条
containerScroll: true,//是否支持滚动条
rootVisible: true,
listeners: {
//添加监听 设置树的节点选择的级联关系
checkchange: function(node, checked) {
listenerCheck(node, checked);
}
}});
var listenerCheck = function(node, checked) {
childHasChecked(node,checked);
var parentNode = node.parentNode;
if(parentNode != null) {
parentCheck(parentNode,checked);
}
};
//级联选中父节点
var parentCheck = function(node ,checked){
var childNodes = node.childNodes;
for (var i = 0; i < childNodes.length; i++) {
if (childNodes[i].get('checked')) {
node.set('checked',checked);
continue;
}else{
node.set('checked',false);
break;
}
};
var parentNode = node.parentNode;
if (parentNode != null ) {
parentCheck(parentNode,checked);
}
}
//级联选择子节点
var childHasChecked = function (node, checked) {
node.cascadeBy(function (child) {
child.set("checked",checked)
});
}
Ext.create('Ext.tree.Panel', {
2、//添加监听 设置树的节点选择的级联关系