Бөлісу құралы:


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 свойства.

Замечание

ChildItems Коллекции Items содержат только элементы меню для следующего уровня вниз. Чтобы получить доступ к элементам меню вниз по дереву меню, используйте ChildItems свойство последующего элемента меню.

Чтобы создать элементы меню для Menu элемента управления, используйте один из следующих методов:

Используйте декларативный синтаксис для создания статических элементов меню.

Используйте конструктор для динамического MenuItem создания новых экземпляров класса. Затем эти MenuItem объекты можно добавить в или ChildItems коллекциюItems.

Привязка Menu элемента управления к источнику данных. Menu Когда элемент управления привязан к элементу SiteMapDataSource управления, MenuItem объекты создаются автоматически, соответствующие элементам в источнике данных. Для других источников MenuItem данных объекты также создаются автоматически, соответствующие структуре иерархии источника данных. Однако необходимо также использовать DataBindings коллекцию для определения привязок элементов меню, которые указывают связь привязки между элементом меню и соответствующим элементом данных.

Элементы меню отображаются в статическом меню или динамическом меню в зависимости от его уровня. Статическое меню всегда отображается в элементе Menu управления. По умолчанию элементы меню верхнего уровня (уровень 0) отображаются в статическом меню. Дополнительные уровни меню (статические подменю) можно отобразить в статическом меню, задав StaticDisplayLevels свойство. Элементы меню (если таковые имеются) с более высоким уровнем, чем значение, указанное StaticDisplayLevels свойством, отображаются в динамическом подменю. Динамический подменю отображается только в том случае, если пользователь помещает указатель мыши на родительский элемент меню, содержащий динамический подменю.

Когда пользователь щелкает элемент меню, Menu элемент управления может перейти на связанную веб-страницу или просто отправить обратно на сервер. NavigateUrl Если свойство элемента меню задано, Menu элемент управления переходит к связанной странице; в противном случае он отправляет страницу обратно на сервер для обработки. По умолчанию связанная страница отображается в том же окне или кадре Menu , что и элемент управления. Чтобы отобразить связанное содержимое в другом окне или кадре, используйте Target свойство Menu элемента управления.

Замечание

Свойство 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, String, String, String, String)

Инициализирует новый экземпляр класса с помощью указанного MenuItem текста меню, значения, URL-адреса изображения, URL-адреса навигации и целевого объекта.

MenuItem(String, String, String, String)

Инициализирует новый экземпляр класса с помощью указанного MenuItem текста меню, значения, URL-адреса изображения и URL-адреса навигации.

MenuItem(String, String, String)

Инициализирует новый экземпляр MenuItem класса, используя указанный текст меню, значение и URL-адрес изображения.

MenuItem(String, String)

Инициализирует новый экземпляр класса с помощью указанного MenuItem текста и значения меню.

MenuItem(String)

Инициализирует новый экземпляр класса с помощью указанного MenuItem текста меню.

Свойства

Имя Описание
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 объекту отслеживать изменения состояния представления.

Применяется к

См. также раздел