下面的代码定义了一个完整的ext treepanel的实例,其中,对checkchange事件的处理,使单击父亲节点时对下面的子节点全部选中或取消选中。
sysFunClassTree
=
new
Ext.tree.TreePanel({
id:'sysFunClassTree',split: true ,collapsible: true ,rootVisible: false ,name:'sysFunClassTree',autoScroll: true ,border: true ,
region:'east',title:'功能分类树',width: 200 ,
loader: new Ext.tree.TreeLoader({dataUrl:'http: // localhost:8080/jeasyweb/treeSysFunClass.do',baseParams:{'_tree_checkbox':'true'}})
});
sysFunClassTree_root = new Ext.tree.AsyncTreeNode({
text:'Ext TreeRoot',id:'src_root'
});
sysFunClassTree.setRootNode(sysFunClassTree_root);
sysFunClassTree.on('click', function (node, e){treeClick(node, e);});
sysFunClassTree.on('checkchange', function (node, flag) {
if (node.hasChildNodes()) {
node.eachChild( function (child) {
child.ui.toggleCheck(flag);
child.attributes.checked = flag;
child.fireEvent('checkchange', child, flag);
});
}
});
id:'sysFunClassTree',split: true ,collapsible: true ,rootVisible: false ,name:'sysFunClassTree',autoScroll: true ,border: true ,
region:'east',title:'功能分类树',width: 200 ,
loader: new Ext.tree.TreeLoader({dataUrl:'http: // localhost:8080/jeasyweb/treeSysFunClass.do',baseParams:{'_tree_checkbox':'true'}})
});
sysFunClassTree_root = new Ext.tree.AsyncTreeNode({
text:'Ext TreeRoot',id:'src_root'
});
sysFunClassTree.setRootNode(sysFunClassTree_root);
sysFunClassTree.on('click', function (node, e){treeClick(node, e);});
sysFunClassTree.on('checkchange', function (node, flag) {
if (node.hasChildNodes()) {
node.eachChild( function (child) {
child.ui.toggleCheck(flag);
child.attributes.checked = flag;
child.fireEvent('checkchange', child, flag);
});
}
});