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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的asp.Net相关文章