我有一个由 web.sitemap 文件驱动的 asp:Menu 控件。
例如,菜单如下:
Fruit
- Apple
- Orange
- Strawberry
Color
- Blue
- Red
- Yellow
在站点地图中,特定的水果是“水果”siteMapNode 的子节点(颜色也是如此)。菜单设置为动态的,因此水果和颜色是静态的,特定的水果和颜色显示在弹出/弹出菜单中。父项仅用于分类目的;没有“水果”页面。
我如何使它成为“水果”和“颜色”不是链接?
我有一个由 web.sitemap 文件驱动的 asp:Menu 控件。
例如,菜单如下:
Fruit
- Apple
- Orange
- Strawberry
Color
- Blue
- Red
- Yellow
在站点地图中,特定的水果是“水果”siteMapNode 的子节点(颜色也是如此)。菜单设置为动态的,因此水果和颜色是静态的,特定的水果和颜色显示在弹出/弹出菜单中。父项仅用于分类目的;没有“水果”页面。
我如何使它成为“水果”和“颜色”不是链接?
我最终添加了一个事件处理程序来处理这个问题。这不是很理想,但可以完成工作。
<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;
}
}
<siteMapNode url="" title="Fruit" description="">
<siteMapNode url="~/Apple.aspx" title="Apple"/>
<siteMapNode url="~/Orange.aspx" title="Orange"/>
<siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>
与颜色一样明智
只需从 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>