This is a migrated thread and some comments may be shown as answers.

searching nodes in RadTreeView

1 Answer 157 Views
TreeView
This is a migrated thread and some comments may be shown as answers.
Bassem
Top achievements
Rank 1
Bassem asked on 29 Aug 2012, 09:58 AM
i'm doing a project where i can search a node withing my treeView my code so far is this:

function expandAllAncestors(node) {
            if (node.get_expanded() !== true)
                node.expand();
 
            if (node.get_level() != 0) {
                expandAllAncestors(node.get_parent());
            }
        }
 
        function SearchClick() {
 
            var search = $get("<%= ApplicationSearchResult.ClientID %>").value;
            var treeView = $find("<%= MainTree.ClientID %>");
            var nodes = treeView.get_allNodes();
            var NextNode = document.getElementById("<%=NextNode.ClientID %>");
            NextNode.style.display = "block";
            for (var i = 0; i < nodes.length; i++) {
                var node = nodes[i];
                if (node.get_text() == search) {
                    node.set_selected(true);
                    expandAllAncestors(node);
                    return;
                }
            }
 
         }
I need a simple code so when i search the tree for the second time all the opened nodes should be collapsed and only the searched one is expended

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 03 Sep 2012, 05:45 AM
Hi Bassem,

Please modify your code as follows to achieve your scenario.

Javascript:
<script type="text/javascript">
  function expandAllAncestors(node)
  {
   if (node.get_expanded() !== true)
   node.expand();
   if (node.get_level() != 0)
   {
    expandAllAncestors(node.get_parent());
   }
  }
  function SearchClick()
  {
   var search = $get("<%= ApplicationSearchResult.ClientID %>").value;
   var treeView = $find("<%= MainTree.ClientID %>");
   var nodes = treeView.get_allNodes();
   for (var i = 0; i < nodes.length; i++)
   {
    nodes[i].collapse();
   }
   for (var i = 0; i < nodes.length; i++)
   {
    var node = nodes[i];
    if (node.get_text() == search)
    {
     node.set_selected(true);
     expandAllAncestors(node);
     return;
    }
   }
  }
</script>

Hope this helps.

Thanks,
Princy.
Tags
TreeView
Asked by
Bassem
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or