Extjs TreePanel選中子節點默認選中父節點,取消勾選父節點子節點默認取消

首先在TreePanel裏面加一個事件checkchange

然後在事件裏寫入一下內容:

// checkchange事件

checkAllchild_click : function(node,checked){
     var me=this;
      if (node.data.leaf == false) {  
               if (checked) {  
                   // 打開節點  
                   node.expand();  
                   // 遍歷孩子  
                   me.setChildNode(node.childNodes,checked);
               } else {  
                   node.expand();  
                   me.setChildNode(node.childNodes,checked);
               }  
           } else { // 單擊葉子時候  
               if (checked) { // 未被選中時,取消父節點的選擇狀態  
              me.setParentNode(node,checked);
               }  
           }  
       },
       //反選父節點
        setParentNode:function(node,checked){
      node.set('checked', checked);  
            if(node.parentNode!=null){
           this.setParentNode(node.parentNode, checked); 
            }
      },
    //選子節點
        setChildNode: function (childNodes,checked){
        var node;
              for(var i=0;i<childNodes.length;i++){
                node= childNodes[i];
                node.set('checked', checked);  
                if(node.childNodes.length>0){
                this.setChildNode(node.childNodes, checked); 
                }
              }
      }


最後注意一點複選框必須是自己後臺傳過來的,必須是自己寫的,不能用工具畫(比如sencha),否則無效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章