TreeNode.ValuePath Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the path from the root node to the current node.

Namespace:   System.Web.UI.WebControls
Assembly:  System.Web (in System.Web.dll)

public string ValuePath { get; }

Property Value

Type: System.String

A delimiter-separated list of node values that form a path from the root node to the current node.

The ValuePath property contains a delimiter-separated list of node values that form a path from the root node to the current node. Use the PathSeparator property to specify the delimiter character used to separate the node values. This value is commonly used when parsing the list for the individual values, or to pass as an argument to the FindNode method of the TreeView class.

Depending on the value displayed in the TreeView control, the delimiter character might need to be changed to prevent any conflicts. For example, if you set the delimiter character to a comma, the displayed value should not contain any commas; otherwise, you cannot accurately parse the ValuePath property.


Nodes at the same level must each have a unique value for the Value property; the TreeView control cannot distinguish between different nodes at the same level that have the same value. In this scenario, if the user clicks a node that has a duplicate value, the node that appears first in the TreeView control is selected.

The following code example demonstrates how to parse the ValuePath property.

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
<script runat="server">

  void Index_Changed(Object sender, EventArgs e)

    // Set the PathSeparator character based on the user's selection.
    // Notice that the value must be converted to a Char data type.
    BookTreeView.PathSeparator = Convert.ToChar(List.SelectedItem.Text);

    // Display the ValuePath values for the second-level nodes.
    Message.Text = "The ValuePath values for the second-level nodes are:<br />";
    foreach(TreeNode node in BookTreeView.Nodes[0].ChildNodes)

      // Create the delimiter array with the PathSeparator value for the Split method.
      Char[] DelimiterArray = new Char[1];
      DelimiterArray[0] = BookTreeView.PathSeparator;

      // Parse the ValuePath value using the delimiter array.
      String[] NodeValues = node.ValuePath.Split(DelimiterArray);

      // Display the node values.
      for(int i=0; i<NodeValues.Length; i++)
        if(i != NodeValues.Length - 1)
          // Append the delimiter character.
          Message.Text += NodeValues[i] + BookTreeView.PathSeparator.ToString();
          // Do not append the delimiter character.
          Message.Text += NodeValues[i];


      // Append a line break for the next node.
      Message.Text += "<br />";




<html xmlns="" >

  <head runat="server">
    <title>TreeView PathSeparator Example</title>
    <form id="form1" runat="server">

      <h3>TreeView PathSeparator Example</h3>

      <asp:TreeView id="BookTreeView"


          <asp:TreeNode Value="Chapter 1" 
            Text="Chapter 1">

            <asp:TreeNode Value="Section 1"
              Text="Section 1">

              <asp:TreeNode Value="Paragraph 1" 
                Text="Paragraph 1">


            <asp:TreeNode Value="Section 2" 
              Text="Section 2">




      <br />

      <asp:Label id="Message" runat="server"/>

      <hr />

      Select a path separator value:<br />

      <asp:DropDownList ID="List"

        <asp:ListItem Selected="true">/</asp:ListItem>



.NET Framework
Available since 2.0
Return to top