当前位置:  开发笔记 > 后端 > 正文

ASP.NET MenuItem单个样式

如何解决《ASP.NETMenuItem单个样式》经验,为你挑选了2个好方法。

我希望使用ASP.NET菜单控件来浏览我的网站.但是,我要求每个MenuItem必须设置不同的样式(不同的颜色,静态和onHover).如果不创建从MenuItem继承的自定义类,这可能吗?

关于更好解决方案的想法?



1> 小智..:

如果有人碰到同样的问题......

一个对我有用的快速而肮脏的方法是将HTML内容强制进入MenuItem Text(通过适当的转义).然后,您可以在CSS中以任何方式设置样式,甚至可以将每个菜单项设置为使用不同的样式:


HTML最终在标记内:

  • Text Here

  • 很脏..我喜欢它.我不认为你可以对Web Forms过于肮脏,说实话,它开始时很乱.

    2> Ruslan..:

    如果没有在菜单上覆盖RenderContents,那么您的选项非常有限.您需要的大部分都是私密且密封的,您将无法到达任何地方.

    我的解决方案是使用模板.您可以使用MenuItem.Value或Depth和ItemIndex来标识每个项目并提供必要的属性.

    在页面中:

    
        
            
                
                    
                
                
                    
                
                
            
            
            
        
        
            
                <%# Eval("Text") %> - <%# Eval("Value") %>
            
        
        
            
                <%# Eval("Text") %> - <%# Eval("Value") %>
            
        
    
    

    在Code中(从不介意此代码的愚蠢,它只是为了演示原理):

    public Color GetItemColor(MenuItemTemplateContainer container)
    {
        MenuItem item = (MenuItem)container.DataItem;
    
        //identify based value
        if (item.Value == "value 2")
            return Color.Brown;
    
        //identify based on depth and index
        if (item.Depth == 0)
            switch (container.ItemIndex)
            {
                case 0: return Color.Red;
                case 1: return Color.Blue;
                case 2: return Color.DarkGreen;
                default:
                    return Color.Black;
            }
        else
            switch (container.ItemIndex)
            {
                case 0: return Color.Purple;
                case 1: return Color.Aqua;
                case 2: return Color.DarkOrange;
                default:
                    return Color.Black;
            }
    }
    

    推荐阅读
    sx-March23
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有