2010-08-24 65 views
1

我有一个asp:由web.sitemap文件驱动的菜单控件。ASP.NET:菜单使父项非超链接?

例如,菜单是这样的:

Fruit 
- Apple 
- Orange 
- Strawberry 

Color 
- Blue 
- Red 
- Yellow 

在站点地图,特定水果的“水果”的SiteMapNode(同样为颜色)的孩子的菜单是设置为动态的,所以水果和颜色是静态的,具体的水果和颜色出现在弹出/弹出式菜单中。父项仅用于分类目的;没有“水果”页面。

我该如何制作“水果”和“颜色”不是链接?

回答

1

我结束了添加事件处理程序来处理这个问题。这并不是很理想,但它完成了这项工作。

<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
<siteMapNode url="" title="Fruit" description=""> 
    <siteMapNode url="~/Apple.aspx" title="Apple"/> 
    <siteMapNode url="~/Orange.aspx" title="Orange"/> 
    <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/> 
</siteMapNode> 

像明智的颜色

+0

我已经试过了,但是当我这样做整个水果菜单消失。 – User 2010-08-26 02:02:00

-1

只需从的SiteMapNode删除 “URL”,像这样:

<siteMapNode title="Fruit" description=""> 
    <siteMapNode url="~/Apple.aspx" title="Apple"/> 
    <siteMapNode url="~/Orange.aspx" title="Orange"/> 
    <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/> 
</siteMapNode>