【问题标题】:ASP.NET Menu Control in Master page - Hilight selected menu item母版页中的 ASP.NET 菜单控件 - 突出显示选定的菜单项
【发布时间】:2014-05-21 21:03:33
【问题描述】:

我知道以前有人问过这个问题并回答过,但我仍然无法让它工作。我把它归结为这一点。如果我在 MenuItem 中指定 NavigateURL,它将不起作用。如果我不这样做,则菜单项在单击时会按预期更改其样式。但是,它作为导航菜单完全没有用,因为它不再带您到任何地方! :)

所以澄清一下,这是可行的 - 选定的项目按照指定的样式突出显示:

    <asp:menu id="NavigationMenu" staticdisplaylevels="1" orientation="Horizontal" runat="server">
        <staticselectedstyle backcolor="LightBlue" borderstyle="Solid" bordercolor="Black" borderwidth="1"/>
        <items>
            <asp:MenuItem Text="Home" Value="Home" />
            <asp:MenuItem Text="Software" Value="Software" />
        </items>
    </asp:menu>

这不起作用 - 唯一的改变是添加 NavigateURL:

    <asp:menu id="NavigationMenu" staticdisplaylevels="1" orientation="Horizontal" runat="server">
        <staticselectedstyle backcolor="LightBlue" borderstyle="Solid" bordercolor="Black" borderwidth="1"/>
        <items>
            <asp:MenuItem NavigateUrl="/Default.aspx" Text="Home" Value="Home" />
            <asp:MenuItem NavigateUrl="/Software.aspx" Text="Software" Value="Software" />
        </items>
    </asp:menu>

this other post 中,OP 正在使用 NavigateURLs,并已接受有关 StaticSelectedStyle 的答案。没看懂。

我想了解如何保持 StaticSelectedStyle 正常工作,同时使用 NavigateURL。

我应该补充一点,菜单位于母版页中。正在导航的页面使用此母版页。

谢谢! -桑德拉

编辑:

根据我对该主题的阅读,我认为这不起作用,因为 Menu 控件只知道它在 Postback 上的位置。但是,如果您的菜单项将您带到其他页面,则不再是回发,并且菜单控件会重新加载并且不知道单击了哪个项。

【问题讨论】:

    标签: asp.net menu


    【解决方案1】:

    尝试在主文件的 Page_Load 部分添加一些代码,以将来自 url 的页面名称与菜单项中的 NaviagteUrl 反弹。这里:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
        For Each item As MenuItem In NavigationMenu.Items
            If Request.Url.AbsoluteUri.ToLower().Contains(Page.ResolveUrl(item.NavigateUrl.ToLower())) Then
                item.Selected = True
            End If
        Next
    
    End Sub
    

    那是在 VB.NET 中。它有效,我使用上面的标记对其进行了测试。我希望你能弄清楚如何将它融入你的代码中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-15
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      相关资源
      最近更新 更多