Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Short of overriding RenderContents on Menu, your options are very limited. Most of what you'd need is private and sealed and you won't get anywhere there.</p> <p>My solution would be to use templates. You could use MenuItem.Value or Depth and and ItemIndex to identify each item and provide necessary attributes.</p> <p>In Page:</p> <pre><code>&lt;asp:Menu ID="menu" runat="server" DynamicHorizontalOffset="2" StaticSubMenuIndent="10px"&gt; &lt;Items&gt; &lt;asp:MenuItem Text="Item 1" Value="value 1"&gt; &lt;asp:MenuItem Text="Item 2" Value="value 2"&gt; &lt;asp:MenuItem Text="Item 3" Value="value 3"&gt;&lt;/asp:MenuItem&gt; &lt;/asp:MenuItem&gt; &lt;asp:MenuItem Text="Item 4" Value="value 4"&gt; &lt;asp:MenuItem Text="Item 5" Value="value 5"&gt;&lt;/asp:MenuItem&gt; &lt;/asp:MenuItem&gt; &lt;asp:MenuItem Text="Item 6" Value="value 6"&gt;&lt;/asp:MenuItem&gt; &lt;/asp:MenuItem&gt; &lt;asp:MenuItem Text="Item 7" Value="value 7"&gt;&lt;/asp:MenuItem&gt; &lt;asp:MenuItem Text="Item 8" Value="value 8"&gt;&lt;/asp:MenuItem&gt; &lt;/Items&gt; &lt;StaticItemTemplate&gt; &lt;asp:Panel runat="server" ForeColor='&lt;%# GetItemColor(Container) %&gt;'&gt; &lt;%# Eval("Text") %&gt; - &lt;%# Eval("Value") %&gt; &lt;/asp:Panel&gt; &lt;/StaticItemTemplate&gt; &lt;DynamicItemTemplate&gt; &lt;asp:Panel ID="Panel1" runat="server" ForeColor='&lt;%# GetItemColor(Container) %&gt;'&gt; &lt;%# Eval("Text") %&gt; - &lt;%# Eval("Value") %&gt; &lt;/asp:Panel&gt; &lt;/DynamicItemTemplate&gt; &lt;/asp:Menu&gt; </code></pre> <p>In Code (never mind silliness of this code, it is just to demonstrate the principle):</p> <pre><code>public Color GetItemColor(MenuItemTemplateContainer container) { MenuItem item = (MenuItem)container.DataItem; //identify based value if (item.Value == "value 2") return Color.Brown; //identify based on depth and index if (item.Depth == 0) switch (container.ItemIndex) { case 0: return Color.Red; case 1: return Color.Blue; case 2: return Color.DarkGreen; default: return Color.Black; } else switch (container.ItemIndex) { case 0: return Color.Purple; case 1: return Color.Aqua; case 2: return Color.DarkOrange; default: return Color.Black; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload