Ext.tree.TreeCheckNodeUI 前面是通过这个组件实现的父节点和子节点的级联
但是源码貌似很复杂个人认为,因此不需要通过这个组件实现.
通过以下这两个函数实现类似的功能.
visitAllTreeNodeFun(node, checked);
if (node.parentNode && node.parentNode.getUI().checkbox != null) {
checkParentFun(node.parentNode);
}
但是遇到个新问题,当获取选中的节点时候,只能获取鼠标点击的那个节点,比如点击某一子节点,相关联
的父节点被选中,但是父节点获取不到,级联的相关联节点都获取不到,查询相关资料,改正此处
treeNode.childNodes[i].ui.toggleCheck(checked);//选中
需要先选中,再赋值,才可以获取选中的节点,加上上面的红色那句话就可以了.此时又有个新问题
选中事件发生在子节点,但要通过toggleCheck()改变其父节点未被选中的状态,而一旦改变了父节点未被选中状态为选中状态,就会激发树中的<CheckChange Handler="check(node)" />事件
,每次激发,传入的节点值node一直在改变,陷入一个死循环。
因此要加入suspendEvents()停止监听事件,执行完后再恢复监听
Ext.onReady(function() {
Ext.QuickTips.init();
this.tree = new Ext.tree.TreePanel({
id:'tree',
region: 'center',
autoScroll: true,
animate: true,
width: '280',
collapsible: (this.centerRegion=='center' ? false : true),
split: true,
// tbar: [{xtype:"button",text:"logout",listeners:{ "click":function(){ssd(); }}
// }],
tbar:[' ',
new Ext.form.TextField({
width:150,
emptyText:'快速检索',
enableKeyEvents: true,
listeners:{
keyup:function(node, event) {
extjs实现级联以及节点的模糊查询
最新推荐文章于 2022-11-21 10:37:34 发布