Menu 控件

使用 Menu 控件,可以为 ASP.NET 网页开发静态和动态显示的菜单。可以在 Menu 控件中直接配置其内容,也可以通过将该控件绑定到数据源的方式指定其内容。

向网页中添加 Menu 控件

  • Menu 控件从“工具箱”面板拖到网页上。

定义菜单内容

可以采用两种方式定义 Menu 控件的内容:通过交互方式(或编程方式)逐个添加菜单项,或者将控件数据绑定到网站图或 XML 数据源。

为 Menu 控件定义项

  1. 在“设计”视图中,右键单击 Menu 控件,然后单击“显示常用控制任务”。

  2. 在“****DropDownList 任务”****菜单上,单击“编辑菜单项”。

  3. 在“菜单项编辑器”对话框中,单击“添加根项”Cc295472.ceca6b3c-d5cc-48da-9bd7-fffcc486d45d(zh-cn,Expression.40).jpg 以添加一项。

  4. 在“属性”区域中,设置 Texthref 属性以及要为该菜单项设置的任何其他属性。

  5. 添加更多的根项,或者通过单击“添加子项”Cc295472.b6fcf26e-e12d-4faa-ad58-a448cb5d25b0(zh-cn,Expression.40).jpg,向所选项添加子项。

  6. 添加了若干个菜单项之后,可以通过选中某项并单击以下按钮来调整其顺序和缩进:“在同级间将项上移”Cc295472.21730f68-38b2-45cd-980f-5a48feb6987d(zh-cn,Expression.40).jpg、“在同级间将项下移”Cc295472.4cfe2717-2851-4922-bb52-9c38fdda20c4(zh-cn,Expression.40).jpg、“使所选项成为其父级的同级”Cc295472.b89d598e-1bab-4ec7-a256-e769699de3e6(zh-cn,Expression.40).jpg、“使所选项成为其前一个同级的子级”Cc295472.5d22e6e0-3cd4-4f0a-bc7d-69cd895fff90(zh-cn,Expression.40).jpg 或“移除项” Cc295472.27e0c529-accb-4203-a5de-1deb9142cea6(zh-cn,Expression.40).jpg

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

将 Menu 控件绑定到数据源

  1. 在“设计”视图中,右键单击 Menu 控件,然后单击“显示常用控制任务”。

  2. 在“DropDownList 任务”菜单上,从“选择数据源”下拉列表中选择现有的数据源或“<新数据源>”。

    Note注意:

    可以在“数据源库”面板中编辑现有数据源。

  3. 如果选择了“<新数据源>”,将打开“数据源配置向导”。单击“应用程序从哪里获取数据?”框中的“网站图”或“XML 文件”,再在“为数据源指定 ID”框中指定数据源的 ID。

  4. 如果选择了“XML 文件”,则在“配置数据源”对话框的“数据文件”框中指定该 XML 文件,并且(可选)为 XML 数据源指定 XSL 转换文件或 XPath 表达式。

  5. 在对话框和向导中单击“确定”以返回“设计”视图中的控件。

  6. 右键单击该控件,再单击快捷菜单上的“编辑 MenuItem Databinding”。

  7. 在“可用数据绑定”列表中,选择要绑定到菜单的 XML 域,并单击“添加”。

  8. 在“所选数据绑定”列表中选择该域,然后在“数据绑定属性”区域设置属性值。例如,若要指定菜单中显示的文本,则从“TextField”属性下拉列表中选择“ #InnerText ”,以显示在 XML 元素的开始和结束标记之间包含的文本。

  9. 有关绑定到 XML 数据源和对“Menu”控件进行编程的详细信息,请参阅 MSDN Library 中的 Menu 类 Cc295472.xtlink_newWindow(zh-cn,Expression.40).png(此链接可能指向英文页面)。

外观和行为

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

向 Menu 控件应用基本格式架构

  1. 在“设计”视图中,右键单击 Menu 控件,然后单击“显示常用控制任务”。

  2. 在“Menu 任务”菜单上,单击“自动套用格式”。

  3. 在“自动套用格式”对话框中,从“选择架构”列表中选择一个架构。该架构对“Menu”控件产生的效果将显示在“预览”区域中。

  4. 单击“确定”应用格式架构并关闭对话框,或者单击“应用”应用格式架构而不关闭对话框。

Menu 控件由多个不同的模板区域组成。也可以采用交互方式来设计这些内容。

采用交互方式设计模板

  1. 在“设计”视图中,右键单击 Menu 控件,然后单击“显示常用控制任务”。

  2. 在“Menu 任务”菜单上,单击“编辑模板”。此操作会将 Menu 切换成模板编辑模式。

  3. 在“显示”下拉列表中,选择要编辑的模板。

  4. 添加文本或控件,或者更改模板。

  5. 模板设计完毕后,请在“Menu 任务”菜单上,单击“结束模板编辑”返回标准的 Menu 设计模式。

与所有 ASP.NET 控件一样,也可以通过在“标记属性”面板中设置属性来指定外观和行为。有关“Menu”控件的所有属性的完整说明,请参阅 MSDN Library 中的 Menu 成员 Cc295472.xtlink_newWindow(zh-cn,Expression.40).png(此链接可能指向英文页面)。

静态显示和动态显示

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

可以选择在“设计”视图中是采用动态菜单还是静态菜单显示 Menu 控件。

设计动态或静态菜单

  1. 在“设计”视图中,右键单击 Menu 控件,然后单击“显示常用控制任务”。

  2. 在“Menu 任务”菜单上,从“视图”下拉列表中选择“Dynamic”或“Static”。模板将切换到所选的视图。

    • 静态显示行为

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

    • 动态显示行为

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

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

      设计动态菜单时需要注意的一个方面是菜单的动态显示部分从显示到消失所持续的时间长度。这个值可以通过调整 DisappearAfter 属性的值以毫秒为单位进行配置,例如,将其设置为“1000”表示 1 秒钟。

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

另请参阅

概念

ASP.NET 导航控件
SiteMapPath 控件
TreeView 控件