ASP.NET:菜单使父项成为非超链接?

发布于 2024-09-15 12:01:40 字数 286 浏览 13 评论 0原文

我有一个由 web.sitemap 文件驱动的 asp:Menu 控件。

例如,菜单如下:

Fruit
- Apple
- Orange
- Strawberry

Color
- Blue
- Red
- Yellow

在站点地图中,特定水果是“Fruit”siteMapNode 的子级(颜色也是如此)菜单设置为动态,因此水果和颜色是静态的,特定水果和颜色显示在弹出/弹出菜单。父项目仅用于分类目的;没有“水果”页面。

如何使“水果”和“颜色”不是链接?

I have an asp:Menu control driven by a web.sitemap file.

For example, the menu is like:

Fruit
- Apple
- Orange
- Strawberry

Color
- Blue
- Red
- Yellow

In the sitemap, the specific fruits are children of the "Fruit" siteMapNode (likewise for the colors) The menu is setup as dynamic so Fruit and Color are static and the specific fruits and colors show up in the popup/flyout menu. The parent items are just for categorization purposes; there's no "Fruit" page.

How do I make it so "Fruit" and "Color" are NOT links?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

零度° 2024-09-22 12:01:40

我最终添加了一个事件处理程序来处理这个问题。它并不是很理想,但它可以完成工作。

<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;
    }
}

I ended up adding an event handler to handle this. It's not really ideal but it does the job.

<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;
    }
}
凯凯我们等你回来 2024-09-22 12:01:40
<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="" title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>

Like wise with Colors

橙幽之幻 2024-09-22 12:01:40

只需从 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>

Simply remove the "url" from siteMapNode, like this:

<siteMapNode title="Fruit"  description="">
  <siteMapNode url="~/Apple.aspx" title="Apple"/>
  <siteMapNode url="~/Orange.aspx" title="Orange"/>
  <siteMapNode url="~/Strawberry.aspx" title="Strawberry"/>
</siteMapNode>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文