EXTJS的Tree,当子节点全部取消,父节点也取消?求代码!!
如图,其他的都从网上copy代码实现了,就差这了。求大神救命!!意思是:当我用户管理下的5个子节点取消选中时,用户管理也取消选中。...
如图,其他的都从网上copy代码实现了,就差这了。求大神救命!!
意思是:当我用户管理下的5个子节点取消选中时,用户管理也取消选中。 展开
意思是:当我用户管理下的5个子节点取消选中时,用户管理也取消选中。 展开
展开全部
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="ext/resources/css/ext-all.css" />
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
<script type="text/javascript">
Ext.onReady(function() {
var windowWidth = 1000;
var windowHeight = 500;
var tree = new Ext.tree.TreePanel({
width : windowWidth / 3,
height : windowHeight,
title : "测试",
root : new Ext.tree.AsyncTreeNode( {
text : "请选择功能模块",
id : 'root',
children : [ {
text : "用户管理",
checked : false,
children : [ {
text : "添加用户",
checked : false,
leaf:true
}, {
text : "修改信息",
checked : false,
leaf:true
}, {
text : "删除用户",
checked : false,
leaf:true
}, {
text : "分配角色",
checked : false,
leaf:true
}, {
text : "充值密码",
checked : false,
leaf:true
} ]
}]
}),
autoScroll : true,
animate : true,
lines : false,
collapseMode : "mini",
collapsible : true,
layoutConfig : {
animate : true
},
split : true,
listeners : {
checkchange : function(n, flag) {
if (flag) {
if (n.parentNode.id != 'root') {
n.parentNode.getUI().checkbox.checked = true;
if (n.parentNode.parentNode.id != null
&& n.parentNode.parentNode.id != ""
&& n.parentNode.parentNode.id != 'root') {
n.parentNode.parentNode.getUI().checkbox.checked = true;
}
}
} else {
if(n.parentNode.id != 'root'){
if(flag == false){
checkChild(n);
}
}else
uncheckNode(n);
}
}
}
});
function checkChild(node){
var pNode = node.parentNode;
for ( var i = 0; i < pNode.childNodes.length; i++) {
if(pNode != node && pNode.childNodes[i].getUI().checkbox.checked == true) return;
}
pNode.getUI().checkbox.checked = false;
}
function uncheckNode(node) {
if (node.hasChildNodes) {
for ( var i = 0; i < node.childNodes.length; i++) {
node.childNodes[i].getUI().checkbox.checked = false;
uncheckNode(node.childNodes[i]);
}
}
}
var windowWidth = window.screen.availWidth;
var style = 'margin-top:50px;margin-left:150px;';
var el = Ext.get('auto-center').applyStyles(style);
tree.render(el);
});
</script>
</head>
<body>
<div id='auto-center'></div>
</body>
</html>
简单给你做了个,节点选择的功能如下:
勾选子节点,父节点会一并选中。
取消勾选父节点,其下所有子节点会取消选中。
子节点全部取消选中,则父节点会自动 取消选中。(你的需求)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询