ASP.Net 4.5编程创建菜单:子项未继承父项格式问题求助
解决ASP.NET 4.5菜单子项不继承格式的问题
我来帮你搞定这个菜单样式的问题!你遇到的情况其实是ASP.NET Menu控件的一个常见特性——它把静态菜单项(顶级项)和动态菜单项(子项)的配置分开管理了,所以只设置静态相关的属性不会自动应用到子项上。下面针对你关注的两个设置分别给出解决方案:
1. 移除子菜单项的弹出箭头(DynamicEnableDefaultPopOutImage)
你设置的StaticEnableDefaultPopOutImage="false"只对顶级静态菜单项生效,子菜单项属于动态项,需要对应的DynamicEnableDefaultPopOutImage属性,同样设为false就能去掉子项旁的箭头了。
2. 统一子菜单项的ItemSpacing
和箭头设置同理,ItemSpacing默认只作用于静态项,子项的间距需要通过DynamicMenuItemStyle来单独配置,在里面设置ItemSpacing的值,就能让子项和顶级项保持一致的间距。
完整的示例代码
把这两个配置加到你的asp:Menu控件里,就能实现你想要的效果:
<asp:Menu ID="YourMenuID" runat="server" StaticEnableDefaultPopOutImage="false" DynamicEnableDefaultPopOutImage="false" ItemSpacing="8px"> <!-- 顶级项的间距 --> <!-- 子菜单项的间距配置 --> <DynamicMenuItemStyle ItemSpacing="8px" /> <!-- 你的菜单项定义 --> <Items> <asp:MenuItem Text="顶级菜单1" Value="Top1"> <asp:MenuItem Text="子菜单1-1" Value="Sub1-1" /> <asp:MenuItem Text="子菜单1-2" Value="Sub1-2" /> </asp:MenuItem> <asp:MenuItem Text="顶级菜单2" Value="Top2"> <asp:MenuItem Text="子菜单2-1" Value="Sub2-1" /> </asp:MenuItem> </Items> </asp:Menu>
简单来说,ASP.NET Menu控件的静态和动态样式是独立的,只要找到对应的Dynamic前缀属性或样式节点,就能让子项继承顶级项的格式啦!
内容的提问来源于stack exchange,提问作者Melanie
相关产品推荐
相关产品推荐

