Menu.PathSeparator Property

Definition

Gets or sets the character used to delimit the path of a menu item in a Menu control.

public:
 property char PathSeparator { char get(); void set(char value); };
public char PathSeparator { get; set; }
member this.PathSeparator : char with get, set
Public Property PathSeparator As Char

Property Value

The character used to delimit the path of a menu item. The default value is a slash mark (/).

Examples

The following code example demonstrates how to use the PathSeparator property to change the delimiter character for a menu item's value path to a comma.


<%@ 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)
  {
    // The value path for a menu item is a delimited list
    // of menu text values that form a path from the root 
    // menu item to the current menu item.

    // Declare the value path to the Classical menu item using
    // the delimiter character specified in the PathSeparator
    // property. In this example, the delimiter character is a
    // comma.
    String valuePath = "Home,Music,Classical";
    
    // Use the FindItem method to get the Classical menu item using
    // its value path.
    MenuItem item = NavigationMenu.FindItem(valuePath);
    
    // Indicate whether the menu item was found.
    if (item != null)
    {
      Message.Text = item.Text + " menu item found at depth " + 
        item.Depth.ToString() + ".";
    }
    else
    {
      Message.Text = "Menu item not found.";
    }
  }
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Menu PathSeparator and FindItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu PathSeparator and FindItem Example</h3>
    
      <!-- Use the PathSeparator property to  -->
      <!-- change the delimiter character for -->
      <!-- the value path of a menu item to a -->
      <!-- comma (,).                         -->
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        pathseparator="," 
        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)
 
    ' The value path for a menu item is a delimited list
    ' of menu text values that form a path from the root 
    ' menu item to the current menu item.

    ' Declare the value path to the Classical menu item using
    ' the delimiter character specified in the PathSeparator
    ' property. In this example, the delimiter character is a
    ' comma.
    Dim valuePath As String = "Home,Music,Classical"
    
    ' Use the FindItem method to get the Classical menu item using
    ' its value path.
    Dim item As MenuItem = NavigationMenu.FindItem(valuePath)
    
    ' Indicate whether the menu item was found.
    If Not item Is Nothing Then
    
      Message.Text = item.Text & " menu item found at depth " & _
        item.Depth.ToString() & "."
    
    Else
    
      Message.Text = "Menu item not found."
    
    End If
      
  End Sub
  
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>Menu PathSeparator and FindItem Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu PathSeparator and FindItem Example</h3>
    
      <!-- Use the PathSeparator property to  -->
      <!-- change the delimiter character for -->
      <!-- the value path of a menu item to a -->
      <!-- comma (,).                         -->
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        pathseparator="," 
        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

Each menu item (represented by a MenuItem object) in the Menu control has a ValuePath property that specifies the position of the menu item. The value path is a string of delimited values that form the path from a root menu item to the current menu item. Use the PathSeparator property to specify the delimiting character used to separate the values in the menu path. This value is commonly used when parsing the list for the individual values.

Depending on the text 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 text should not contain any commas; otherwise, the ValuePath property cannot be parsed accurately.

Applies to

See also