操作回顾
添加到Master页面的Menu控件将读取SiteMapDataSource控件(siteData)的内容并根据保存在该数据源中的数据显示一组链接SiteMapDataSource控件本身不需要任何修改(除了重新命名以外) ──默认情况下SiteMapDataSource将读取WebSiteMap文件并扮演Menu控件的中间人以使它能够根据WebSiteMap文件的内容显示链接
如果需要可以使用表所示的属性定制SiteMapDataSource
将菜单绑定到SiteMapDataSource控件是从WebSiteMap数据文件创建链接层次结构的一种简便方法但使用这个控件还可以完成更多的事情包括绑定到完全不同的数据源将控件(除Menu控件以外)与数据相结合如果必须经常处理以完全不同的格式(WebSiteMap以外的格式)存储的站点地图数据那么为了利用SiteMapDataSource控件必须对SiteMapProvider类进行自定义创建自定义的数据提供程序是一个相当复杂的过程(这己超出本章的讨论范围)要获得关于该过程的更多信息可以参考由Bill Evjen编写Wrox出版社出版的Professional ASPNET
在这个示例中对Menu控件的修改非常少只是为它添加了一些属性值下面的代码显示了添加的属性值
<asp:Menu ID=Menu runat=server DataSourceID=siteData StaticDisplayLevels=
orientation=Vertical
StaticSubMenuIndent=
disappearafter=
AccessKey=m
EnableViewState=false
>
<DynamicMenuStyle CssClass=dynamicMenu />
<DynamicMenuItemStyle CssClass=dynamicMenuItem />
</asp:menu>
Menu控件本身的其他属性都很简单这个示例在Properties面板中设置了列表第一行的两个属性(DataSourceID和StaticDisplayLevels)其他属性控制如下内容
Orientation:用于在页面上设置一个水平菜单条
StaticSubMenuIndent:控制显示了子菜单条目的缩进深度如果这些菜单层级被设置为以静态模式显示
DisappearAfter:指定弹出式菜单在消失前的可视时间长度
AccessKey:设置键盘快捷键以增强可用性
EanbleViewstate: ASPNET的功能之一如果将其设置为true则页面在回送到服务器时会维护控件的状态例如在向服务器提交数据时对文本框中的值保持不变这个控件没有必要使用该属性而且将其禁用将对页面的性能有微小的改善
除了这些属性以外还有两个属性它们帮助定义所显示控件的可视风格DynamicMenuStyle控制弹出式菜单本身的外观而DynamicMenuItemStyle控制链接的外观这些内容的风格由css控制第章将详细介绍
本章最后介绍的导航控件是TreeView控件这个控件在用法上非常类似于Menu控件
[] [] [] [] [] []