EXTJS 树节点移除

需求:EXTJS定义的一个树,后台返回JSON中的结点带有disable属性(非叶子结点也有可能)。要求能移除disabled的节点。

方案:

   function getDisabledNode(tree,node){
    var p = null
    if(null !=(p= node.firstChild)){
      getDisabledNode(tree,p)
     }else{
      if(node.disabled){
       p = node.parentNode
       p.removeChild(node)
       getDisabledNode(tree,p)
       }
      if(node == tree.getRootNode()){
       return true
       }
      }
    try{
      getDisabledNode(tree,node.nextSibling)
    }catch(e){}
}




 
EXT中定义tree 并增加一个按钮执行: getDisabledNode(tree,tree.getRootNode().firstChild)


EXTJS 树节点移除
 
 

EXTJS 树节点移除

 

//树节点不可用

notifyDrop : function(ddSource, e, data){                      
                    var record = new blankRecord({                          
                        name     : ddSource.dragData.node.attributes.text,           
                    });
                    //alert(ddSource.dragData.node.attributes.text);
                    //var rows = firstGrid.getSelectionModel().getSelections();
                    ddSource.dragData.node.disable();           //节点不可用
                    firstGridStore.add(record);
                    return(true);                 
        }

 

你可能感兴趣的:(json,ext)