How to: Find a Node by Its Text
This example demonstrates how to find a node by its text on the client side.
In the example we use the GetNodeByText method to search for the required node. If a node has been found, the code iterates through parent nodes to expand them using the SetExpanded method. After that the found note is selected using the SetSelectedNode method. Note, that the ASPxTreeView's AllowSelectNode property is set to true to allow node selection.
Note
A complete sample project is available at https://github.com/DevExpress-Examples/how-to-find-a-node-by-its-text-using-the-getnodebytext-method-e2445
<script>
function FindNode(s, e) {
//Check the input data
if (textbox.GetText()==''){
alert('Please, input name of a node');
return;
}
if (treeview.GetNodeByText(textbox.GetText()) == null){
alert('The ' + textbox.GetText() + ' node was not found');
return;
}
var node = treeview.GetNodeByText(textbox.GetText());
//Iterate through the parent nodes to expand them
var nodesparent = node.parent;
while(nodesparent != null) {
nodesparent.SetExpanded(true);
nodesparent = nodesparent.parent
}
//Select the found node
treeview.SetSelectedNode(node);
}
</script>
<dx:ASPxTreeView ID="ASPxTreeView1" runat="server" ClientInstanceName="treeview" DataSourceID="XmlDataSource1" AllowSelectNode="True">
</dx:ASPxTreeView>
<br />
<dx:ASPxLabel ID="ASPxLabel1" runat="server" Text="Input the node's text (e.g. 'News')">
</dx:ASPxLabel>
<dx:ASPxTextBox ID="ASPxTextBox1" runat="server" ClientInstanceName="textbox" Width="170px">
</dx:ASPxTextBox>
<br />
<dx:ASPxButton ID="ASPxButton1" runat="server" ClientInstanceName="searchbutton"
Text="Find" AutoPostBack="False">
<ClientSideEvents Click="FindNode"/>
</dx:ASPxButton>
<asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/App_Data/MenuTabbedMenu.xml"
OnTransforming="XmlDataSource1_Transforming" XPath="/mainmenu/item">
</asp:XmlDataSource>