ASP.NET MenuItem 单独样式
我希望使用 ASP.NET 菜单控件在我的网站中进行导航。 但是,我有一个要求,每个 MenuItem 必须采用不同的样式(不同的颜色,静态的和悬停时的颜色)。 如果不创建从 MenuItem 继承的自定义类,这可能吗?
关于更好的解决方案的想法?
I'm hoping to use an ASP.NET Menu Control for navigation through my site. However, I've got a requirement that each MenuItem must be styled differently (different colors, both static, and onHover). Without creating a custom class that would inherit from MenuItem, is this possible?
Thoughts on a better solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果其他人遇到同样的问题...
对我有用的一种快速而肮脏的方法是强制将 HTML 内容放入 MenuItem
Text
(并进行适当的转义)。 然后,您可以在 CSS 中以任何您想要的方式设置其样式,甚至将每个菜单项设置为使用不同的样式:HTML 最终位于
标记内:
If anyone else bumps into the same question...
A quick and dirty method that worked for me is to force HTML contents into the MenuItem
Text
(with appropriate escaping). You can then style it any way you want in your CSS, or even set each menu item to use a different style:The HTML ends up inside the
<a>
tag:如果没有覆盖菜单上的 RenderContents,您的选择非常有限。 你需要的大部分东西都是私密且密封的,你哪儿也去不了。
我的解决方案是使用模板。 您可以使用 MenuItem.Value 或 Depth 和 ItemIndex 来标识每个项目并提供必要的属性。
在页面中:
在代码中(不要介意这段代码的愚蠢,它只是为了演示原理):
Short of overriding RenderContents on Menu, your options are very limited. Most of what you'd need is private and sealed and you won't get anywhere there.
My solution would be to use templates. You could use MenuItem.Value or Depth and and ItemIndex to identify each item and provide necessary attributes.
In Page:
In Code (never mind silliness of this code, it is just to demonstrate the principle):
尝试像这样为每个菜单项设置样式:
代码隐藏:
CSS 类:
Try like this to set style for each menu item:
Code behind:
CSS class:
如果以编程方式生成菜单,则可以在创建每个 MenuItem 时添加 style 和 onmouseover/onmouseout 属性,例如:
或者,尝试在标记中添加这些属性,IntelliSense 不会告诉您它们有效,但它们通常会告诉您(我)还没有专门用 MenuItems 进行测试):
您可能会幸运地使用 CSS 友好适配器。
当然,您可以创建一个继承类并重新处理渲染例程......
If you generate the menu programmatically, you can add the style and onmouseover/onmouseout attributes when creating each MenuItem, e.g.:
Alternatively, try adding those attributes in the markup, IntelliSense won't tell you that they work, but they usually do (I haven't tested it specifically with MenuItems):
You might have some luck with CSS Friendly Adapters.
Of course you can create an inherited class and re-work the rendering routines...