Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
母版页中的ASP.NET菜单控件-高亮显示选定的菜单项_Asp.net_Menu - Fatal编程技术网

母版页中的ASP.NET菜单控件-高亮显示选定的菜单项

母版页中的ASP.NET菜单控件-高亮显示选定的菜单项,asp.net,menu,Asp.net,Menu,我知道以前有人问过这个问题,也回答过这个问题,但我还是无法让它发挥作用。我把它归结为这个。如果我在菜单项中指定NavigateURL,它将不起作用。如果没有,则单击时菜单项会按预期更改其样式。但是,它作为导航菜单是完全无用的,因为它不再带你去任何地方 因此,为了澄清,本工程-所选项目按照指定样式进行照明: <asp:menu id="NavigationMenu" staticdisplaylevels="1" orientation="Horizontal" runat="ser

我知道以前有人问过这个问题,也回答过这个问题,但我还是无法让它发挥作用。我把它归结为这个。如果我在菜单项中指定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>
这不起作用-唯一的变化是添加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中。它是有效的,我使用上面的标记进行了测试。我希望您能找出如何将其融入代码中