C#Menu导航详解

来源:互联网 发布:二次安防网络拓扑 编辑:程序博客网 时间:2024/04/30 01:25

Menu控件是一个页面上使用的菜单。该控件有静态模式和动态模式两种显示模式,静态模式的菜单项始终是完全展开的,在这种模式下,设置StaticDisplayLevels属性指定显示菜单的级别,如果菜单的级别超过了StaticDisplayLevels属性指定的值,则把超过的级别自动设置为动态模式显示。动态模式需要响应用户的鼠标事件才在父节点上显示子菜单项,MaximumDynamicDisplayLevels属性指定动态菜单的显示级别,如果菜单的级别超过了该属性指定的值,则不显示超过的级别。

Menu控件最简单的用法是在设计视图中使用Items属性添加MenuItem对象的集合。MenuItem对象有一个NavigateUrl属性,如果设置了该属性,单击菜单项后将导航到指定的页面,可以使用Menu控件的Target属性指定打开页的位置,MenuItem对象也有一个Target属性,可以单独指定打开页面的位置。如果没有设置NavigateUrl属性,则把页面提交到服务器进行处理。本示例将演示如何使用Menu控件实现导航。

技术要点

使用Menu控件实现导航的技术要点如下。
 
MenuItem对象表示菜单的一项通过该对象的属性可以设置菜单的内容和导航方式。
 
Menu控件的项可以使用设计器和编程两种方法添加。
 
StaticDisplayLevels属性指定静态菜单的显示级别。

实现步骤

(1)在VS2010中创建一个ASP.NET网站,命名为“MenuSample”。

(2)添加一个页面,命名为“Menu.aspx”,并把这个页设置为起始页。

(3)从工具箱选择Menu控件设计页面,并在窗口的Items属性中打开编辑菜单项的界面,添加“系统操作”和“帮助”两个根菜单项,如图22.3所示。


(4)在首次加载页面时,用编程的方式,指定Menu控件的一些属性,并为两个根菜单项添加子菜单。代码如下所示。

<%@ Page Language="C#" AutoEventWireup="true" %><script runat="server">protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){this.Menu1.Orientation = Orientation.Horizontal;//设置菜单水平显示this.Menu1.StaticDisplayLevels = 1;//只显示第一级菜单this.Menu1.Target = "_blank";//指定在新的窗口打开页面MenuItem register = new MenuItem();//定义子菜单register.Text = "注册用户";register.NavigateUrl = "~/register.aspx";this.Menu1.Items[0].ChildItems.Add(register);//添加子菜单MenuItem Login = new MenuItem();Login.Text = "登录";Login.NavigateUrl = "~/Login.aspx";this.Menu1.Items[0].ChildItems.Add(Login);MenuItem help = new MenuItem();//定义第二项菜单的子菜单help.Text = "帮助";help.NavigateUrl = "~/help.aspx";this.Menu1.Items[1].ChildItems.Add(help);MenuItem About = new MenuItem();About.Text = "关于";About.NavigateUrl = "~/About.aspx";this.Menu1.Items[1].ChildItems.Add(About);}}</script><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>Menu使用示例</title></head><body><form id="form1" runat="server"><div><asp:Menu ID="Menu1" runat="server"><Items><asp:MenuItem Text="系统操作" Value="系统操作"></asp:MenuItem><asp:MenuItem Text="帮助" Value="帮助"></asp:MenuItem></Items></asp:Menu></div></form></body></html>

(5)按Ctrl+F5组合键运行程序,运行结果如图22.4所示


源程序解读

(1)Menu控件的StaticDisplayLevels属性设置为1,表示只静态显示根菜单项,其子菜单动态显示。

(2)Target属性指定单击菜单项打开新页面的位置,该属性的级别低于MenuItem类的Target属性,当两个对象同时指定Target属性时,MenuItem类的Target属性优先。

(3)MenuItem类的NavigateUrl属性用于指定URL地址。