MenuItem Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет элемент меню, отображаемый в элементе управления Menu. Этот класс не наследуется.
public ref class MenuItem sealed : ICloneable, System::Web::UI::IStateManager
public sealed class MenuItem : ICloneable, System.Web.UI.IStateManager
type MenuItem = class
interface IStateManager
interface ICloneable
Public NotInheritable Class MenuItem
Implements ICloneable, IStateManager
- Наследование
-
MenuItem
- Реализации
Примеры
В следующем примере показано, как заполнить Menu элемент управления статическими MenuItem объектами с помощью декларативного синтаксиса.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>MenuItem Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItem Declarative Example</h3>
<!-- Use declarative syntax to create the -->
<!-- menu structure. Create submenu items -->
<!-- by nesting them within parent menu -->
<!-- items. -->
<asp:menu id="NavigationMenu"
staticdisplaylevels="1"
staticsubmenuindent="10"
orientation="Vertical"
target="_blank"
runat="server">
<items>
<asp:menuitem navigateurl="Home.aspx"
text="Home"
imageurl="Images\Home.gif"
popoutimageurl="Images\Popout.jpg"
tooltip="Home">
<asp:menuitem navigateurl="Music.aspx"
text="Music"
popoutimageurl="Images\Popout.jpg"
tooltip="Music">
<asp:menuitem navigateurl="Classical.aspx"
text="Classical"
separatorimageurl="Images\Separator.jpg"
tooltip="Classical"/>
<asp:menuitem navigateurl="Rock.aspx"
text="Rock"
separatorimageurl="Images\Separator.jpg"
tooltip="Rock"/>
<asp:menuitem navigateurl="Jazz.aspx"
text="Jazz"
separatorimageurl="Images\Separator.jpg"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem navigateurl="Movies.aspx"
text="Movies"
popoutimageurl="Images\Popout.jpg"
tooltip="Movies">
<asp:menuitem navigateurl="Action.aspx"
text="Action"
separatorimageurl="Images\Separator.jpg"
tooltip="Action"/>
<asp:menuitem navigateurl="Drama.aspx"
text="Drama"
separatorimageurl="Images\Separator.jpg"
tooltip="Drama"/>
<asp:menuitem navigateurl="Musical.aspx"
text="Musical"
separatorimageurl="Images\Separator.jpg"
tooltip="Musical"/>
</asp:menuitem>
</asp:menuitem>
</items>
</asp:menu>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>MenuItem Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItem Declarative Example</h3>
<!-- Use declarative syntax to create the -->
<!-- menu structure. Create submenu items -->
<!-- by nesting them within parent menu -->
<!-- items. -->
<asp:menu id="NavigationMenu"
staticdisplaylevels="1"
staticsubmenuindent="10"
orientation="Vertical"
target="_blank"
runat="server">
<items>
<asp:menuitem navigateurl="Home.aspx"
text="Home"
imageurl="Images\Home.gif"
popoutimageurl="Images\Popout.jpg"
tooltip="Home">
<asp:menuitem navigateurl="Music.aspx"
text="Music"
popoutimageurl="Images\Popout.jpg"
tooltip="Music">
<asp:menuitem navigateurl="Classical.aspx"
text="Classical"
separatorimageurl="Images\Separator.jpg"
tooltip="Classical"/>
<asp:menuitem navigateurl="Rock.aspx"
text="Rock"
separatorimageurl="Images\Separator.jpg"
tooltip="Rock"/>
<asp:menuitem navigateurl="Jazz.aspx"
text="Jazz"
separatorimageurl="Images\Separator.jpg"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem navigateurl="Movies.aspx"
text="Movies"
popoutimageurl="Images\Popout.jpg"
tooltip="Movies">
<asp:menuitem navigateurl="Action.aspx"
text="Action"
separatorimageurl="Images\Separator.jpg"
tooltip="Action"/>
<asp:menuitem navigateurl="Drama.aspx"
text="Drama"
separatorimageurl="Images\Separator.jpg"
tooltip="Drama"/>
<asp:menuitem navigateurl="Musical.aspx"
text="Musical"
separatorimageurl="Images\Separator.jpg"
tooltip="Musical"/>
</asp:menuitem>
</asp:menuitem>
</items>
</asp:menu>
</form>
</body>
</html>
В следующем примере показано, как привязать Menu элемент управления к элементу SiteMapDataSource управления. При привязке к источнику Menu данных элемент управления автоматически создает MenuItem объекты. Для правильной работы этого примера необходимо скопировать приведенные ниже данные карты сайта в файл с именем Web.sitemap.
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<!-- For the hover styles of the Menu control to -->
<!-- work correctly, you must include this head -->
<!-- element. -->
<head runat="server">
<title>Menu DataBinding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu DataBinding Example</h3>
<!-- Bind the Menu control to a SiteMapDataSource control. -->
<asp:menu id="NavigationMenu"
disappearafter="2000"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
font-names="Arial"
target="_blank"
datasourceid="MenuSource"
runat="server">
<staticmenuitemstyle backcolor="LightSteelBlue"
forecolor="Black"/>
<statichoverstyle backcolor="LightSkyBlue"/>
<dynamicmenuitemstyle backcolor="Black"
forecolor="Silver"/>
<dynamichoverstyle backcolor="LightSkyBlue"
forecolor="Black"/>
</asp:menu>
<asp:SiteMapDataSource id="MenuSource"
runat="server"/>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<!-- For the hover styles of the Menu control to -->
<!-- work correctly, you must include this head -->
<!-- element. -->
<head runat="server">
<title>Menu DataBinding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu DataBinding Example</h3>
<!-- Bind the Menu control to a SiteMapDataSource control. -->
<asp:menu id="NavigationMenu"
disappearafter="2000"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
font-names="Arial"
target="_blank"
datasourceid="MenuSource"
runat="server">
<staticmenuitemstyle backcolor="LightSteelBlue"
forecolor="Black"/>
<statichoverstyle backcolor="LightSkyBlue"/>
<dynamicmenuitemstyle backcolor="Black"
forecolor="Silver"/>
<dynamichoverstyle backcolor="LightSkyBlue"
forecolor="Black"/>
</asp:menu>
<asp:SiteMapDataSource id="MenuSource"
runat="server"/>
</form>
</body>
</html>
Ниже приведен пример данных карты сайта для предыдущего примера.
<siteMap>
<siteMapNode url="~\Home.aspx"
title="Home"
description="Home">
<siteMapNode url="~\Music.aspx"
title="Music"
description="Music">
<siteMapNode url="~\Classical.aspx"
title="Classical"
description="Classical"/>
<siteMapNode url="~\Rock.aspx"
title="Rock"
description="Rock"/>
<siteMapNode url="~\Jazz.aspx"
title="Jazz"
description="Jazz"/>
</siteMapNode>
<siteMapNode url="~\Movies.aspx"
title="Movies"
description="Movies">
<siteMapNode url="~\Action.aspx"
title="Action"
description="Action"/>
<siteMapNode url="~\Drama.aspx"
title="Drama"
description="Drama"/>
<siteMapNode url="~\Musical.aspx"
title="Musical"
description="Musical"/>
</siteMapNode>
</siteMapNode>
</siteMap>
Комментарии
Элемент Menu управления состоит из иерархии элементов меню, представленных объектами MenuItem . Каждый пункт меню имеет свойство только Depth для чтения, указывающее уровень, на котором элемент меню отображается в элементе Menu управления. Пункты меню верхнего уровня (уровень 0), у которых нет родительского пункта меню, называются корневыми элементами меню. Элемент меню с родительским элементом меню называется элементом подменю. Все элементы корневого Items меню хранятся в коллекции. Элементы подменю хранятся в коллекции родительского ChildItems элемента меню. Доступ к родительскому элементу меню можно получить с помощью Parent свойства.
Примечание
Коллекции Items содержат ChildItems только элементы меню для следующего уровня вниз. Чтобы получить доступ к пунктам меню вниз по дереву меню, используйте ChildItems свойство последующего пункта меню.
Чтобы создать элементы меню для Menu элемента управления, используйте один из следующих методов:
Используйте декларативный синтаксис для создания статических пунктов меню.
Используйте конструктор для динамического MenuItem создания новых экземпляров класса. Затем эти MenuItem объекты можно добавить в коллекцию или ChildItems коллекциюItems.
Привяжите Menu элемент управления к источнику данных. Когда элемент Menu управления привязан к SiteMapDataSource элементу управления, объекты создаются автоматически, MenuItem соответствующие элементам в источнике данных. Для других источников данных объекты также создаются автоматически, MenuItem соответствующие структуре иерархии источника данных. Однако необходимо также использовать DataBindings коллекцию для определения привязок элементов меню, определяющих связь привязки между элементом меню и соответствующим элементом данных.
Элементы меню отображаются в статическом меню или динамическом меню в зависимости от его уровня. Статическое меню всегда отображается в элементе Menu управления. По умолчанию элементы меню верхнего уровня (уровень 0) отображаются в статическом меню. Вы можете отобразить дополнительные уровни меню (статические подменю) в статическом меню, задав StaticDisplayLevels свойство. Пункты меню (если таковые имеются) с более высоким уровнем, чем значение, указанное StaticDisplayLevels свойством, отображаются в динамическом подменю. Динамический подменю отображается только в том случае, если пользователь размещает указатель мыши над родительским элементом меню, содержащим динамический подменю.
Когда пользователь щелкает пункт меню, Menu элемент управления может перейти на связанную веб-страницу или просто опубликовать его на сервере. NavigateUrl Если свойство элемента меню задано, Menu элемент управления переходит на связанную страницу; в противном случае она отправляет страницу обратно на сервер для обработки. По умолчанию связанная страница отображается в том же окне или фрейме Menu , что и элемент управления. Чтобы отобразить связанное содержимое в другом окне или фреймеMenu, используйте Target свойство элемента управления.
Примечание
Это Menu.Target свойство влияет на каждый пункт меню в элементе управления. Чтобы указать окно или рамку для отдельного элемента меню, задайте Target свойство MenuItem объекта напрямую.
Каждый пункт меню имеет свойство Text и Value свойство. Значение Text свойства отображается в элементе Menu управления, а Value свойство используется для хранения дополнительных данных об элементе меню, таких как данные, передаваемые в событие обратной передачи, связанное с элементом меню. Если задать Text свойство, но оставить Value свойство не настроенным, свойство автоматически задается с тем же значением, Value что и Text свойство. Обратное также верно. Если задать Value свойство, но не Text свойство, свойство автоматически устанавливается с тем же значением, Text что и Value свойство.
Примечание
Элементы меню на одном уровне меню должны иметь уникальное значение для Value свойства. Элемент Menu управления не может различать разные пункты меню на одном уровне с одинаковым значением. В этом сценарии, если пользователь щелкает пункт меню с повторяющимся значением, выбирается пункт меню, который отображается первым в меню.
Чтобы отобразить подсказку, когда пользователь размещает указатель мыши над элементом меню, задайте свойство элемента ToolTip .
Элемент Menu управления имеет несколько различных типов элементов меню. Вы можете управлять стилем (например, размером и цветом шрифта) для различных типов элементов меню с помощью свойств в следующей таблице.
Свойство стиля элемента меню | Описание |
---|---|
DynamicHoverStyle | Параметры стиля для динамического элемента меню, когда указатель мыши располагается над ним. |
DynamicMenuItemStyle | Параметры стиля для отдельного элемента динамического меню. |
DynamicMenuStyle | Параметры стиля для динамического меню. |
DynamicSelectedStyle | Параметры стиля для выбранного в данный момент динамического пункта меню. |
StaticHoverStyle | Параметры стиля для статического пункта меню, когда указатель мыши располагается над ним. |
StaticMenuItemStyle | Параметры стиля для отдельного элемента статического меню. |
StaticMenuStyle | Параметры стиля для статического меню. |
StaticSelectedStyle | Параметры стиля для выбранного в данный момент статического пункта меню. |
Вместо настройки отдельных свойств стиля можно указать стили, применяемые к пунктам меню на основе их уровня, с помощью коллекций стилей, показанных в следующей таблице.
Коллекции стилей уровня | Описание |
---|---|
LevelMenuItemStyles | Коллекция MenuItemStyle объектов, управляющих стилем элементов меню на основе их уровня. |
LevelSelectedStyles | Коллекция MenuItemStyle объектов, управляющих стилем выбранных пунктов меню на основе их уровня. |
LevelSubMenuStyles | Коллекция MenuItemStyle объектов, управляющих стилем элементов подменю на основе их уровня. |
Первый стиль в коллекции соответствует стилю пунктов меню на первом уровне глубины в дереве меню. Второй стиль в коллекции соответствует стилю пунктов меню на втором уровне глубины в дереве меню и т. д. Чаще всего это используется для создания меню навигации в стиле содержимого, где элементы меню на определенной глубине должны иметь одинаковый внешний вид, независимо от того, имеют ли они подменю.
Примечание
Если вы используете любую из коллекций стилей уровня, перечисленных в предыдущей таблице, чтобы определить стиль элемента Menu управления, эти параметры стиля переопределяют свойства стиля отдельного элемента меню.
Помимо настройки стиля элемента меню, можно также настроить его внешний вид. Вы можете указать пользовательские изображения для различных частей для пункта меню, задав свойства в следующей таблице.
Свойство Image | Описание |
---|---|
ImageUrl | Необязательное изображение, отображаемое рядом с текстом элемента меню. |
PopOutImageUrl | Необязательное изображение, отображаемое в пункте меню, указывающее, что элемент меню содержит динамический подменю. |
SeparatorImageUrl | Необязательное изображение, отображаемое в нижней части пункта меню, чтобы отделить его от других пунктов меню. |
Чтобы определить, выбран ли элемент меню в элементе Menu управления, используйте Selected это свойство. Вы также можете определить, привязан ли элемент меню к данным с помощью DataBound свойства. Если элемент меню привязан к данным, можно использовать DataItem свойство для доступа к значениям элемента данных, привязанного к элементу меню.
Список начальных значений свойств для экземпляра класса MenuItem см. в описании конструктора MenuItem.
Конструкторы
MenuItem() |
Инициализирует новый экземпляр класса MenuItem без текста меню или значения. |
MenuItem(String) |
Инициализирует новый экземпляр класса MenuItem, используя указанный текст меню. |
MenuItem(String, String) |
Инициализирует новый экземпляр класса MenuItem, используя указанный текст меню и значение. |
MenuItem(String, String, String) |
Инициализирует новый экземпляр класса MenuItem, используя указанный текст меню, значение и URL-адрес изображения. |
MenuItem(String, String, String, String) |
Инициализирует новый экземпляр класса MenuItem, используя указанный текст меню, значение, URL-адрес изображения и URL-адрес перехода. |
MenuItem(String, String, String, String, String) |
Инициализирует новый экземпляр класса MenuItem, используя указанный текст меню, значение, URL-адрес изображения, URL-адрес перехода и цель. |
Свойства
ChildItems |
Возвращает объект MenuItemCollection, содержащий пункты подменю для текущего пункта меню. |
DataBound |
Возвращает значение, определяющее, был ли данный пункт меню создан при помощи привязки данных. |
DataItem |
Возвращает элемент данных, привязанный к пункту меню. |
DataPath |
Возвращает путь к данным, привязанным к пункту меню. |
Depth |
Возвращает уровень отображения пункта меню. |
Enabled |
Получает или задает значение, показывающее, включен ли объект MenuItem, что позволяет элементу отображать всплывающее изображение и любые дочерние пункты меню. |
ImageUrl |
Получает или задает URL-адрес изображения, которое отображается рядом с текстом пункта меню. |
NavigateUrl |
Получает или задает URL-адрес для перехода при выборе пункта меню. |
Parent |
Возвращает родительский пункт меню для текущего пункта меню. |
PopOutImageUrl |
Получает или задает URL-адрес изображения, которое отображается в пункте меню и показывает, что пункт меню имеет динамическое подменю. |
Selectable |
Получает или задает значение, позволяющее определить, можно ли выделить объект MenuItem, т.е. является ли он "активным". |
Selected |
Получает или задает значение, позволяющее определить, выбран ли текущий пункт меню в элементе управления Menu. |
SeparatorImageUrl |
Получает или задает URL-адрес изображения, которое отображается под пунктом меню и отделяет его от остальных пунктов меню. |
Target |
Получает или задает целевое окно или фрейм, для отображения содержимого веб-страницы, связанной с пунктом меню. |
Text |
Получает или задает текст, отображаемый для пункта меню в элементе управления Menu. |
ToolTip |
Получает или задает текст подсказки для пункта меню. |
Value |
Получает или задает неотображаемое значение, используемое для хранения любых дополнительных данных о пункте меню, например, данных, используемых для обработки событий обратной передачи. |
ValuePath |
Возвращает путь из корневого пункта меню к текущему пункту меню. |
Методы
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Явные реализации интерфейса
ICloneable.Clone() |
Создает копию текущего объекта MenuItem. |
IStateManager.IsTrackingViewState |
Возвращает значение, указывающее, сохраняет ли объект MenuItem изменения в состоянии просмотра. |
IStateManager.LoadViewState(Object) |
Загружает сохраненное ранее состояние представления пункта меню. |
IStateManager.SaveViewState() |
Сохраняет изменения состояния представления в объекте Object. |
IStateManager.TrackViewState() |
Выдает объекту MenuItem инструкции отслеживать изменения в его состоянии представления. |