Общие сведения об элементе управления Menu
Обновлен: Ноябрь 2007
Элемент управления Menu позволяет разрабатывать для веб-страниц ASP.NET меню, отображаемые как статически, так и динамически.
В данном разделе рассматриваются следующие темы:
Базовые сведения
Примеры кода
Ссылка на классы
Базовые сведения
Элемент управления Menu имеет два режима отображения: статический и динамический. Статическое отображение означает, что элемент управления Menu все время полностью развернут. Отображается вся структура меню, и пользователь может щелкнуть любую часть меню. В динамически отображаемом меню являются статичными только указанные части, тогда как их дочерние пункты меню отображаются, когда пользователь удерживает указатель мыши на родительском пункте.
Можно настроить содержимое элемента управления Menu либо непосредственно в элементе управления, либо путем привязки элемента управления к источнику данных. Без написания какого-либо кода можно управлять внешним видом, ориентацией и содержимым элемента управления Menu ASP.NET. Помимо визуальных свойств, предоставляемых элементом управления, он также поддерживает обложки элементов управления ASP.NET и темы. Дополнительные сведения об обложках и темах см. в разделе Общие сведения о темах и обложках ASP.NET.
Режим статического отображения
Поведением статического отображения можно управлять с помощью свойства StaticDisplayLevels элемента управления Menu. Свойство StaticDisplayLevels определяет количество уровней статического отображения от корневого элемента меню. Например, если свойство StaticDisplayLevels имеет значение 3, статически отображаться в меню будут первые три уровня. Минимальный уровень статического отображения равен 1, и элемент управления создает исключение, если этому свойству присваивается нулевое или отрицательное значение.
Режим динамического отображения
Свойство 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-файл можно использовать для организации этого содержимого: передав XML-файл элементу управления Menu, можно проверить доступность содержимого пользователям веб-узла.
Внешний вид и поведение
Поведением элемента управления Menu можно управлять через его свойства. Также можно управлять поведением в режиме динамического отображения, в том числе интервалом времени, в течение которого пункт меню остается видимым после его отображения. Например, чтобы изменить ориентацию элемента управления Menu с горизонтальной на вертикальную, следует установить свойство Orientation:
[Visual Basic]
Menu.Orientation = Orientation.Vertical
[C#]
Menu.Orientation = Orientation.Vertical;
Установка свойства в Orientation.Horizontal приведет к изменению ориентации обратно на горизонтальную.
Можно установить отдельные свойства элемента управления Menu для указания размера, цвета, шрифта и других характеристик его внешнего вида. Помимо этого, к элементу управления Menu можно применять обложки и темы.
Стиль
Каждый уровень меню поддерживает свойства стилей. Если не заданы свойства динамического стиля, используются свойства статического стиля. Если свойства динамического стиля установлены, а свойства статического стиля не установлены, то для отрисовки статического стиля используются значения свойств по умолчанию. Иерархия стилей элемента управления Menu выглядит следующим образом:
Элемент управления
SubMenuStyles
MenuItemStyles
SelectedItemStyles
HoverMenuItemStyles
Эти стили объединяются между динамическими и статическими меню с помощью следующей логики:
Каждый отдельный стиль применяется к соответствующему типу действия или пункта меню.
Все стили объединяются в предшествующем им в иерархии стиле с переопределением последнего стиля.
Примечание.
Статические меню никогда не объединяются, а динамический стиль применяется, если статический стиль не определен.
Скрытие динамического меню
Один из аспектов динамического меню — интервал времени, после которого динамически отображаемая часть меню исчезает. Это значение задается в миллисекундах с помощью свойства DisappearAfter:
[Visual Basic]
Menu.DisappearAfter = 1000
[C#]
Menu.DisappearAfter = 1000;
По умолчанию используется значение 500 миллисекунд. Если значение свойства DisappearAfter равно 0, то перемещение курсора мыши за область элемента управления Menu приведет к его мгновенному исчезновению. Значение -1 указывает, что выход курсора мыши из области меню не должен влиять на его видимость, и только щелчок вне элемента управления Menu приведет к исчезновению динамической части меню.
Использование элемента управления Menu с элементами управления UpdatePanel
Элементы управления UpdatePanel используются для обновления выбранных областей страницы вместо обновления всей страницы с помощью обратной передачи. Элемент управления Menu можно использовать внутри элемента управления UpdatePanel, но с ограничением: стили должны применяться посредством ссылки на класс таблицы каскадных стилей (CSS). Например, вместо того, чтобы установить атрибут свойства DynamicHoverStyle в форме "свойство.подчиненное_свойство", задавайте стиль с помощью атрибута в форме "CssClass=имя_класса". Аналогично, при использовании шаблона DynamicHoverStyle для задания стиля используйте атрибут CssClass шаблона.
Дополнительные сведения о работе с элементами управления UpdatePanel см. в разделах Общие сведения об элементе управления UpdatePanel и Общие сведения о частичной отрисовке страниц.
Примеры кода
Использование CSS и стилей с элементом управления меню
Использование изображений с элементом управления меню
Пошаговое руководство. Отображение меню на веб-страницах
Пошаговое руководство. Программное управление меню ASP.NET
К началу
Связанные классы
В следующей таблице перечислены классы, связанные с элементом управления Menu.
Член |
Описание |
---|---|
Основной класс элемента управления. |
|
Предоставляет данные для событий MenuItemClick и MenuItemDataBound элемента управления Menu. |
|
Представляет обработчики событий MenuItemClick и MenuItemDataBound элемента управления Menu. |
|
Представляет пункт меню, отображаемый в элементе управления Menu. |
|
Определяет связь между элементом данных и пунктом меню, к которому он привязан, в элементе управления Menu. |
|
Представляет коллекцию объектов MenuItemBinding. |
|
Представляет коллекцию элементов меню в элементе управления Menu. |
|
Представляет стиль пункта меню в элементе управления Menu. |
|
Представляет коллекцию объектов MenuItemStyle в элементе управления Menu. |
К началу
См. также
Основные понятия
Общие сведения об структуре переходов веб-узла ASP.NET