extjs实现级联以及节点的模糊查询

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) {  
	         
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值