源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Asp.net 菜单控件简洁版

  • 时间:2022-02-07 22:37 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Asp.net 菜单控件简洁版
本文介绍的菜单控件采用的css 和ul list来显示菜单,生成的html小,无需javascript支持,对大部分的浏览器都支持,除ie6要单独修改css也可以使其支持。 通过本文可以了解asp.net 控件的开发,及Composite设计模式的实际运用。 采用Composite设计模式设计菜单类: MenuCompositeitem类
[url=]} else { output.Write(@"<a href=""" + item.Link + @""" target= """ + item.Target + @""">"); } if (item.Text == SelectedMenuText) //选中的菜单 { output.Write(@"<span class=""selected"">"); output.WriteLine(item.Text); output.WriteLine("</span>"); } else { output.Write(item.Text); } output.Write("</a>"); if (item.Children.Count > 0) { output.WriteLine(); output.Write("<ul>"); for (int i = 0; i < item.Children.Count; i++) { RecursiveRender(output, item.Children[i]); } output.Write("</ul>"); } output.Write("</li>"); } } }
在页面中使用 添加对控件的引用后就可以直接在“工具箱”-》Controls组件中 看到MenuComposite组件 再就可以像其他asp.net 控件一样使用 使用:
MenuCompositeItem root = new MenuCompositeItem("root", null); MenuCompositeItem menu01 = new MenuCompositeItem("menu01", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu02 = new MenuCompositeItem("menu02", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu03 = new MenuCompositeItem("menu03", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu04 = new MenuCompositeItem("menu04", ResolveUrl("~/Page04.aspx")); MenuCompositeItem menu05 = new MenuCompositeItem("menu05", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu01_01 = new MenuCompositeItem("menu01-01", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu01_02 = new MenuCompositeItem("menu01-02", ResolveUrl("~/Page01-02.aspx")); MenuCompositeItem menu01_03 = new MenuCompositeItem("menu01-03", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu01_04 = new MenuCompositeItem("menu01-04", ResolveUrl("~/Default.aspx")); menu01.Children.Add(menu01_01); menu01.Children.Add(menu01_02); menu01.Children.Add(menu01_03); menu01.Children.Add(menu01_04); MenuCompositeItem menu02_01 = new MenuCompositeItem("menu02-01", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu02_02 = new MenuCompositeItem("menu02-02", ResolveUrl("~/Default.aspx"), "menu02-02"); menu02.Children.Add(menu02_01); menu02.Children.Add(menu02_02); MenuCompositeItem menu04_01 = new MenuCompositeItem("menu04-01", ResolveUrl("~/Default.aspx")); MenuCompositeItem menu04_02 = new MenuCompositeItem("menu04-02", ResolveUrl("~/Page04-02.aspx"), "_blank"); menu04.Children.Add(menu04_01); menu04.Children.Add(menu04_02); root.Children.Add(menu01); root.Children.Add(menu02); root.Children.Add(menu03); root.Children.Add(menu04); root.Children.Add(menu05);
TheMenuComposite.MenuItems = root; 此时生成的编译运行后会生成一个没有样式Ul list ,效果如下: [img]http://files.jb51.net/upload/2009-11/20091111002916482.jpg[/img]    因此要生成可显示和隐藏的菜单项,关键在css的设置上,开始时将二级子菜单设置为隐藏visibility: hidden; 同时定义li的hover事件,li:hover时:自菜单的 visibility要改为visible; 大致原理是这样,当然还有注意菜单项的位置 一级菜单float:left;使其能水平显示。 CSS定义如下:
[url=http://xiazai.jb51.net/200911/yuanma/WebMenu.rar]下载文件[/url]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部