ASP.NET:突出显示当前页面的菜单项

我一直在试图找到一个突出显示asp.net菜单当前所选菜单项的简单方法(所以用户知道他们所在的页面),但无论我尝试了什么都无法让它工作.在我的标记我有
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" StaticSelectedStyle-ForeColor="#99CCFF" DynamicSelectedStyle-ForeColor="#99CCFF">
    <Items>
        <asp:MenuItem NavigateUrl="~/Default.aspx" Text="Operations"/>
        <asp:MenuItem NavigateUrl="~/Analysis.aspx" Text="Analysis"/>
        <asp:MenuItem NavigateUrl="~/Dashboard.aspx" Text="Dashboard"/>
        <asp:MenuItem NavigateUrl="~/Flashboard.aspx" Text="Flashboard"/>
        <asp:MenuItem NavigateUrl="~/Spacequest.aspx" Text="SQ OBP"/>
    </Items>
</asp:Menu>

而在服务器端Page_Load功能

((Menu)Master.FindControl("NavigationMenu")).Items[0].Selected = true;

但这不行.我尝试使用网站地图(即使站点地图不是我想要使用的),也没有工作.有任何想法吗?

解决方法

您可以在菜单中使用StaticSelectedStyle属性.
<asp:menu [...]>
        <staticselectedstyle backcolor="LightBlue"
          borderstyle="Solid"
          bordercolor="Black"
          borderwidth="1"/>

        [...]
</asp:menu>

here for more info.

此外,如果有一个类应用于所选项目(我不知道是否有但是会很方便),你可以简单地用你的CSS挂钩.这将比使用StaticSelectedStyle属性更好一些.

UPDATE

值得注意的是,您使用IncludeStyleBlock =“false”将会阻止您的菜单生成控制所选项所需的CSS.

关闭样式块,您必须提供自己的样式,并且不会使用菜单自动生成样式.

从MSDN:

If you set this property to false,you cannot set style properties.
For example,you cannot add a DynamicHoverStyle-ForeColor attribute in
markup or set the DynamicHoverStyle.ForeColor property in code.

资料来源:http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.menu.includestyleblock.aspx

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....