ASP.NET: меню делает родительские элементы не гиперссылками? - PullRequest
2 голосов
/ 25 августа 2010

У меня есть asp: Управление меню, управляемое файлом web.sitemap.

Например, меню выглядит так:

Fruit
- Apple
- Orange
- Strawberry

Color
- Blue
- Red
- Yellow

В карте сайта определенные фрукты являются дочерними для "Fruit" siteMapNode (аналогично цветам). Меню настроено как динамическое, поэтому Fruit и Color статичны, а конкретные фрукты и цвета отображаются во всплывающем меню , Родительские элементы предназначены только для целей категоризации; страницы "Фрукты" нет.

Как мне сделать так, чтобы "Fruit" и "Color" НЕ были ссылками?

Ответы [ 3 ]

2 голосов
/ 24 сентября 2010

Я закончил тем, что добавил обработчик событий, чтобы справиться с этим.Это не совсем идеально, но это делает работу.

<asp:Menu ID="MyMenu" runat="server" DataSourceID="MyDataSource" 
OnMenuItemDataBound="MyMenu_MenuItemDataBound">

...

protected void MyMenu_MenuItemDataBound(object sender, MenuEventArgs e)
{
    SiteMapNode node = (SiteMapNode)e.Item.DataItem;
    if (node.ChildNodes.Count != 0)
    {
        e.Item.Selectable = false;
    }
}
0 голосов
/ 18 мая 2014

Просто удалите "url" из siteMapNode, например:

<siteMapNode title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>
0 голосов
/ 25 августа 2010
<siteMapNode url="" title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>

Как мудро с цветами

...