Ext树级联选中父节点和子节点

 

_this.root1 = new Ext.tree.AsyncTreeNode({
   text : '系统功能菜单配置',
   id : '10',
   icon : '../images/road/plan/toc_closed.gif',
   expanded : true   // 设置根节点默认是展开的
  });
  
  _this.params1 = 'fd_code=10'+"&name="+radiokBoxs;
  _this.tree1 = new Ext.tree.TreePanel({
   onlyLeafCheckable : false,
   rootVisible : true,
   applyTo :'abc',
   border : false,
   autoScroll : true,
   root : _this.root1,
   autoWidth:true,
   autoHeight:true,
   animate : true,// 是否动画
   enableDD : false,// 是否支持拖放
   containerScroll : true,
   lines : true,
   loader : new Ext.tree.TreeLoader({
//    dataUrl : '../page/system/getRoleMenu.jsp?'+ decodeURI(_this.params1),
    dataUrl : '../ws/rolemenu1/RoleMenuService1/getMenutTree1',
    baseParams:{
     role_id:radiokBoxs
    },
    requestMethod : 'POST',
    baseAttrs : {
     uiProvider : Ext.tree.TreeCheckNodeUI
    },
    listeners : {
     beforeload : function(obj, n) {},
     load : function(obj, node, response) {},
     loadexception : function(obj, node, response) {}
    }
   })
  });

  /** 绑定节点选中事件 */
  _this.tree1.on('checkchange', function(node, checked) {
   var parentNode = node.parentNode;
            if(parentNode !== null) {  
                    parentCheck(parentNode,checked);  
            }
           node.expand();
           node.attributes.checked = checked;    
           node.eachChild(function(child) {    
             child.ui.toggleCheck(checked);   
             child.attributes.checked = checked;    
             child.fireEvent('checkchange', child, checked);

           });    
  },_this.tree1);
  
 };
  //级联选中父节点
    var parentCheck = function(node, checked) {
  var checkbox = node.getUI().checkbox;
  if (typeof checkbox == 'undefined')
   return false;
  if (!(checked ^ checkbox.checked))
   return false;
  if (!checked && childHasChecked(node))
   return false;
  checkbox.checked = checked;
  node.attributes.checked = checked;
  node.getUI().checkbox.checked = checked; // 选中状态
//  node.getUI().checkbox.indeterminate = checked;
  node.getOwnerTree().fireEvent('check', node, checked);
  var parentNode = node.parentNode;
  if (parentNode !== null) {
   parentCheck(parentNode, checked);
  }
 };
 // 判断是否有子结点被选中
 var childHasChecked = function(node) {
  var childNodes = node.childNodes;
  if (childNodes || childNodes.length > 0) {
   for ( var i = 0; i < childNodes.length; i++) {
    if (childNodes[i].getUI().checkbox.checked)
     return true;
   }
  }
  return false;
 };

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值