MenuItem.ValuePath Property
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Gets the path from the root menu item to the current menu item.
public:
property System::String ^ ValuePath { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public string ValuePath { get; }
[<System.ComponentModel.Browsable(false)>]
member this.ValuePath : string
Public ReadOnly Property ValuePath As String
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.
<%@ 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>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
' Get the Classical menu item using the Items
' and ChildItems collections.
Dim item As MenuItem = 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.
Dim DelimiterArray(1) As Char
DelimiterArray(0) = NavigationMenu.PathSeparator
' Parse the value path of the Classical menu item
' using the Split method.
Dim nodeValues() As String = 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/>"
Dim menuValue As String
For Each menuValue In nodeValues
Message.Text &= "- <b>" & menuValue & "</b><br/>"
Next
End Sub
</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.
Note
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.