MenuItem.ValuePath Property

Definition

Gets the path from the root menu item to the current menu item.

C#
[System.ComponentModel.Browsable(false)]
public string ValuePath { get; }

Property Value

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

Attributes

Examples

The following example demonstrates how to parse the value to the ValuePath property for the individual menu item values.

ASP.NET (C#)

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {
    // Get the Classical menu item using the Items
    // and ChildItems collections.
    MenuItem item = NavigationMenu.Items[0].ChildItems[0].ChildItems[0];

    // Create the delimiter array using the PathSeparator value.
    // This array is used by the Split method to parse the
    // value path string. 
    Char[] DelimiterArray = new Char[1];
    DelimiterArray[0] = NavigationMenu.PathSeparator;
    
    // Parse the value path of the Classical menu item 
    // using the Split method.
    String[] nodeValues = item.ValuePath.Split(DelimiterArray);
    
    // Display the original and parsed values.
    Message.Text = "The original value path for the Classical menu item is <b>" + 
      item.ValuePath + "</b>.<br/>";
    Message.Text += "The individual values that make up the value " +
      "path are: <br/>";

    foreach (String menuValue in nodeValues)
    {
      Message.Text += "- <b>" + menuValue + "</b><br/>";
    } 
  }
    
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItem ValuePath Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItem ValuePath Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical" 
        runat="server">

        <items>
          <asp:menuitem text="Home"
            tooltip="Home">
            <asp:menuitem text="Music"
              tooltip="Music">
              <asp:menuitem text="Classical"
                tooltip="Classical"/>
              <asp:menuitem text="Rock"
                tooltip="Rock"/>
              <asp:menuitem text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies"
              tooltip="Movies">
              <asp:menuitem text="Action"
                tooltip="Action"/>
              <asp:menuitem text="Drama"
                tooltip="Drama"/>
              <asp:menuitem text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>
      
      <hr/>
      
      <asp:label id="Message" 
        runat="server"/>

    </form>
  </body>
</html>

Remarks

The ValuePath property contains a delimiter-separated list of menu item values that form a path from the root menu item to the current menu item. The value path is used to indicate the position of a menu item in a Menu control. You can specify the delimiter character used to separate the menu item values by using the PathSeparator property. This value is commonly used when parsing the list for the individual values, or to pass as an argument to the FindItem method of the TreeView class. Depending on the value displayed in the Menu 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.

Notes

The values of the Value property of each menu item from the root menu item to the current menu item are used to generate the value path. Menu items at the same menu level must each have a unique value for the Value property; the Menu control cannot distinguish between different menu items at the same level that have the same value.

Applies to

Produit Versions
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

See also