分享
 
 
 

ASP.NETMenu控件

王朝百科·作者佚名  2010-04-29
窄屏简体版  字體: |||超大  

利用 ASP.NET Menu 控件,可以开发 ASP.NET 网页的静态和动态显示菜单。

Menu 控件具有两种显示模式:静态模式和动态模式。静态显示意味着 Menu 控件始终是完全展开的。整个结构都是可视的,用户可以单击任何部位。在动态显示的菜单中,只有指定的部分是静态的,而只有用户将鼠标指针放置在父节点上时才会显示其子菜单项。

您可以在 Menu 控件中直接配置其内容,也可通过将该控件绑定到数据源的方式来指定其内容。无需编写任何代码,便可控制 ASP.NET Menu 控件的外观、方向和内容。除该控件公开的可视属性外,该控件还支持 ASP.NET 控件外观和主题。

静态显示行为

使用 Menu 控件的 StaticDisplayLevels 属性可控制静态显示行为。StaticDisplayLevels 属性指示从根菜单算起,静态显示的菜单的层数。例如,如果将 StaticDisplayLevels 设置为 3,菜单将以静态显示的方式展开其前三层。静态显示的最小层数为 1,如果将该值设置为 0 或负数,该控件将会引发异常。

动态显示行为

MaximumDynamicDisplayLevels 属性指定在静态显示层后应显示的动态显示菜单节点层数。例如,如果菜单有 3 个静态层和 2 个动态层,则菜单的前三层静态显示,后两层动态显示。

如果将 MaximumDynamicDisplayLevels 设置为 0,则不会动态显示任何菜单节点。如果将 MaximumDynamicDisplayLevels 设置为负数,则会引发异常。

定义菜单内容

您可以通过两种方式来定义 Menu 控件的内容:添加单个 MenuItem 对象(以声明方式或编程方式);用数据绑定的方法将该控件绑定到 XML 数据源。

手动添加菜单项

您可以通过在 Items 属性中指定菜单项的方式向控件添加单个菜单项。Items 属性是 MenuItem 对象的集合。下面的示例演示 Menu 控件的声明性标记,该控件有三个菜单项,每个菜单项有两个子项:

<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="3"> <Items> <asp:MenuItem Text="File" Value="File"> <asp:MenuItem Text="New" Value="New"></asp:MenuItem> <asp:MenuItem Text="Open" Value="Open"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="Edit" Value="Edit"> <asp:MenuItem Text="Copy" Value="Copy"></asp:MenuItem> <asp:MenuItem Text="Paste" Value="Paste"></asp:MenuItem> </asp:MenuItem> <asp:MenuItem Text="View" Value="View"> <asp:MenuItem Text="Normal" Value="Normal"></asp:MenuItem> <asp:MenuItem Text="Preview" Value="Preview"></asp:MenuItem> </asp:MenuItem> </Items></asp:Menu>

用数据绑定的方法将控件绑定到 XML 数据源

利用这种将控件绑定到 XML 文件的方法,可以通过编辑此文件来控制菜单的内容,而不需要使用设计器。这样就可以在不重新访问 Menu 控件或编辑任何代码的情况下,更新站点的导航内容。如果站点内容有变化,便可使用 XML 文件来组织内容,再提供给 Menu 控件,以确保网站用户可以访问这些内容。

外观和行为

可通过 Menu 控件的属性来调整该控件的行为。此外,您还可以控制动态显示行为,包括菜单节点持续显示的时间长度。例如,若要将 Menu 的方向从水平更改为垂直,则可按以下所述来设置 Orientation 属性:

[C#]

Menu.Orientation = Orientation.Vertical;

将该属性设置为 Orientation.Horizontal,便可将菜单方向恢复为水平。

可以逐个设置 Menu 控件的属性来指定其外观的大小、颜色、字体和其他特性。此外,还可以对 Menu 控件应用外观和主题。

样式

每个菜单层都支持样式属性。如果没有设置动态样式属性,则使用静态样式属性。如果设置了动态样式属性,而没有设置静态样式属性,则使用默认的静态样式属性进行呈现。Menu 控件样式的层次结构如下所示:

控件

SubMenuStyles

MenuItemStyles

SelectedItemStyles

HoverMenuItemStyles

使用下面的逻辑可跨动态和静态菜单合并这些样式:

各种样式分别被应用至适当的操作或项类型。

所有样式都被合并到层次结构中优先于这些样式的样式中,并重写最后的样式。

永远不会合并静态菜单;如果没有定义静态样式,则应用动态样式。

动态外观计时

设计动态菜单时需要注意的一个方面便是菜单动态显示部分从显示到消失所需的时间长度。按以下方式调整 DisappearAfter 属性,可以按毫秒配置此值:

[C#]

Menu.DisappearAfter = 1000;

默认值为 500 毫秒。如果将 DisappearAfter 的值设置为 0,在 Menu 控件之外暂停便会使其立即消失。将此值设置为 -1 指示暂停时间无限长,只有在 Menu 控件之外单击,才会使动态部分消失。

将 Menu 控件与 UpdatePanel 控件一起使用

UpdatePanel 控件用于通过回发更新页面的选定区域,而不是更新整个页面。Menu 控件可以在 UpdatePanel 控件内使用,限制条件是必须使用对级联样式表 (CSS) 类的引用来应用样式。例如,使用属性-CssClass(其中属性指 Property)属性 (Attribute) 来设置样式,而不是使用属性-子属性(其中属性指 Property)属性 (Attribute) 设置 DynamicHoverStyle 属性 (Property)。同样,在使用 DynamicHoverStyle 模板设置样式时,请使用该模板的 CssClass 属性 (Attribute)。

下面列出了与 Menu 控件相关的类

Menu

控件的主类。

MenuEventArgs

为 Menu 控件的 MenuItemClick 和 MenuItemDataBound 事件提供数据。

MenuEventHander

表示处理 Menu 控件的 MenuItemClick 事件或 MenuItemDataBound 事件的方法。

MenuItem

表示一个在 Menu 控件中显示的菜单项。

MenuItemBinding

定义一个数据项与 Menu 控件中该数据项绑定到的菜单项之间的关系。

MenuItemBindingCollection

表示 MenuItemBinding 对象的集合。

MenuItemCollection

表示 Menu 控件中菜单项的集合。

MenuItemStyle

表示 Menu 控件中菜单项的样式。

MenuItemStyleCollection

表示 Menu 控件中 MenuItemStyle 对象的集合。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有