`
693593336
  • 浏览: 1155 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

extjs4 带选择框的树 级联选中上级下级节点

 
阅读更多
看了几篇对extjs4 check树级联选择的文章,用的时候或多或少存在bug,就在部分代码的基础上自己升级改造了一下



checkchange : function(node, checked) {
//父节点的选中与取消
						   if (checked == true) {
							    node.checked = checked;
							    pNode = node.parentNode;

                               //通过循环将所有父节点选中
							    for (; pNode != null; pNode = pNode.parentNode) {
							     pNode.set("checked", true);
							    }
						   }
						   else{//提示:当所有子节点取消父节点才能取消
								   	node.checked = checked;
								    pNode = node.parentNode;
								    var flag=false;
								    for (; pNode != null; pNode = pNode.parentNode) {
									    var children=pNode.childNodes;
									    Ext.Array.each(children, function(node,index,fog) {
		    								if(node.get('checked')){
		    									//同级节点还有选中的
		    									flag=true;
		    								}
										});
									    //如果同级节点还有选中的,那么跳出循环
									    if(flag){
									    	break;
									    }else{
									    	pNode.set("checked", false);
									    }
								    }
						   }
						 
//当该节点有子节点时,将所有子节点选中取消
						   if (!node.get("leaf") && !checked){
						   		node.cascade(function(node){
							     	node.set('checked', false);
							    });
						   }else if(!node.get("leaf") && checked){
						   		node.cascade(function(node){
							     	node.set('checked', true);
							    });
						   }
					}
				}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics