Expand Tree/Node Till certain depth in ExtJS
Recently I had a requirement where in our UI screen (which we have built using ExtJS Framework) we had a data-tree-panel and we wanted to expand that tree till a particular depth, and there is no built-in method available in API, so I had written a custom function (I think this will work for all versions of ExtJS).
This is the code to expand the treenode to certain depth, i have written 2 functions, in which one function gets recursively called till it completes expansion of given node till its given depth or till it gets to leaf node.
//This Function recurses through Every Node till conditions are met //Currently Depth is hard-coded to 4 but can be given a variable value to change as //per situation myfunction = function(Mynode){ if(Mynode.hasChildNodes() == false || Mynode.getDepth() >= 4){ return; }else if(Mynode.hasChildNodes()){ Mynode.expand(false); Mynode.eachChild(myfunction); } } //this Function expands given node till depth given //As of now the depth is given 4 but can be changed as per requirement expandNodeTillDepth = function(treePanelId ,nodeId){ var PNode = Ext.getCmp(treePanelId).getNodeById(nodeId); PNode.collapse(true); PNode.expand(false); PNode.eachChild( myfunction ); } //Example Use - //expandNodeTillDepth('myTree','ynode-18',4);
Enjoy.
Comments
Post a Comment