母版页中的ASP.NET菜单控件-高亮显示选定的菜单项
我知道以前有人问过这个问题,也回答过这个问题,但我还是无法让它发挥作用。我把它归结为这个。如果我在菜单项中指定NavigateURL,它将不起作用。如果没有,则单击时菜单项会按预期更改其样式。但是,它作为导航菜单是完全无用的,因为它不再带你去任何地方 因此,为了澄清,本工程-所选项目按照指定样式进行照明:母版页中的ASP.NET菜单控件-高亮显示选定的菜单项,asp.net,menu,Asp.net,Menu,我知道以前有人问过这个问题,也回答过这个问题,但我还是无法让它发挥作用。我把它归结为这个。如果我在菜单项中指定NavigateURL,它将不起作用。如果没有,则单击时菜单项会按预期更改其样式。但是,它作为导航菜单是完全无用的,因为它不再带你去任何地方 因此,为了澄清,本工程-所选项目按照指定样式进行照明: <asp:menu id="NavigationMenu" staticdisplaylevels="1" orientation="Horizontal" runat="ser
<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>
这不起作用-唯一的变化是添加NavigateURLs:
<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>
在中,OP正在使用NavigateURLs,并已接受有关StaticSelectedStyle的答案。我不明白
我想了解如何保持StaticSelectedStyle工作,同时使用NavigateURLs
我应该补充一点,菜单在母版页中。正在导航以使用此母版页的页面
谢谢!
-桑德拉
编辑:
根据我对这个主题的阅读,我认为这不起作用,因为菜单控件只知道它在回发上的位置。但是,如果您的菜单项将您带到其他页面,它将不再是回发,并且菜单控件将重新加载,并且不知道单击了哪个项目。尝试向主文件的页面加载部分添加一些代码,以将页面名称从url跳转到菜单项的导航标签。在这里:
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中。它是有效的,我使用上面的标记进行了测试。我希望您能找出如何将其融入代码中