Поделиться через


MenuItemCollection Класс

Определение

Представляет коллекцию элементов меню в элементе Menu управления. Этот класс не может быть унаследован.

public ref class MenuItemCollection sealed : System::Collections::ICollection, System::Web::UI::IStateManager
public sealed class MenuItemCollection : System.Collections.ICollection, System.Web.UI.IStateManager
type MenuItemCollection = class
    interface ICollection
    interface IEnumerable
    interface IStateManager
Public NotInheritable Class MenuItemCollection
Implements ICollection, IStateManager
Наследование
MenuItemCollection
Реализации

Примеры

В следующем примере кода показано, как заполнить Items коллекции с ChildItems помощью декларативного синтаксиса.


<%@ 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 Declarative Example</title>
</head>

  <body>
    <form id="form1" runat="server">
    
      <h3>Menu Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Submenu items are      -->
      <!-- created by nesting them in parent menu -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"  
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>
      
        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                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" >

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
    <title>Menu Declarative Example</title>
</head>

  <body>
    <form id="form1" runat="server">
    
      <h3>Menu Declarative Example</h3>
    
      <!-- Use declarative syntax to create the   -->
      <!-- menu structure. Submenu items are      -->
      <!-- created by nesting them in parent menu -->
      <!-- items.                                 -->
      <asp:menu id="NavigationMenu"
        disappearafter="2000"
        staticdisplaylevels="2"
        staticsubmenuindent="10" 
        orientation="Vertical"
        font-names="Arial" 
        target="_blank"  
        runat="server">
        
        <staticmenuitemstyle backcolor="LightSteelBlue"
          forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="Black"
          forecolor="Silver"/>
        <dynamichoverstyle backcolor="LightSkyBlue"
          forecolor="Black"/>
      
        <items>
          <asp:menuitem navigateurl="Home.aspx" 
            text="Home"
            tooltip="Home">
            <asp:menuitem navigateurl="Music.aspx"
              text="Music"
              tooltip="Music">
              <asp:menuitem navigateurl="Classical.aspx" 
                text="Classical"
                tooltip="Classical"/>
              <asp:menuitem navigateurl="Rock.aspx"
                text="Rock"
                tooltip="Rock"/>
              <asp:menuitem navigateurl="Jazz.aspx"
                text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem navigateurl="Movies.aspx"
              text="Movies"
              tooltip="Movies">
              <asp:menuitem navigateurl="Action.aspx"
                text="Action"
                tooltip="Action"/>
              <asp:menuitem navigateurl="Drama.aspx"
                text="Drama"
                tooltip="Drama"/>
              <asp:menuitem navigateurl="Musical.aspx"
                text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>
      
      </asp:menu>

    </form>
  </body>
</html>

В следующем примере кода показано, как программным способом добавить MenuItem объект в ChildItems коллекцию корневого элемента меню.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    
  void Page_Load(Object sender, EventArgs e)
  {
    if (!IsPostBack)
    {
      // Retrieve the root menu item from the Items
      // collection of the Menu control using the indexer.
      MenuItem homeMenuItem = NavigationMenu.Items[0];

      // Create the submenu item.
      MenuItem newSubMenuItem = new MenuItem("New Category");

      // Add the submenu item to the ChildItems
      // collection of the root menu item.
      homeMenuItem.ChildItems.Add(newSubMenuItem);
    }
  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        orientation="Vertical"
        target="_blank" 
        runat="server">
        
        <items>
          <asp:menuitem text="Home"
            tooltip="Home">
            <asp:menuitem text="Music"
              tooltip="Music">
              <asp:menuitem text="Classical"
                tooltip="Classical"/>
              <asp:menuitem text="Rock"
                tooltip="Rock"/>
              <asp:menuitem text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies"
              tooltip="Movies">
              <asp:menuitem text="Action"
                tooltip="Action"/>
              <asp:menuitem text="Drama"
                tooltip="Drama"/>
              <asp:menuitem text="Musical"
                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">
<script runat="server">
    
  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    If Not IsPostBack Then

      ' Retrieve the root menu item from the Items
      ' collection of the Menu control using the indexer.
      Dim homeMenuItem As MenuItem = NavigationMenu.Items(0)

      ' Create the submenu item.
      Dim newSubMenuItem = New MenuItem("New Category")

      ' Add the submenu item to the ChildItems
      ' collection of the root menu item.
      homeMenuItem.ChildItems.Add(newSubMenuItem)
    
    End If
      
  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>MenuItemCollection Add Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>MenuItemCollection Add Example</h3>
    
      <asp:menu id="NavigationMenu"
        orientation="Vertical"
        target="_blank" 
        runat="server">
        
        <items>
          <asp:menuitem text="Home"
            tooltip="Home">
            <asp:menuitem text="Music"
              tooltip="Music">
              <asp:menuitem text="Classical"
                tooltip="Classical"/>
              <asp:menuitem text="Rock"
                tooltip="Rock"/>
              <asp:menuitem text="Jazz"
                tooltip="Jazz"/>
            </asp:menuitem>
            <asp:menuitem text="Movies"
              tooltip="Movies">
              <asp:menuitem text="Action"
                tooltip="Action"/>
              <asp:menuitem text="Drama"
                tooltip="Drama"/>
              <asp:menuitem text="Musical"
                tooltip="Musical"/>
            </asp:menuitem>
          </asp:menuitem>
        </items>

      </asp:menu>

    </form>
  </body>
</html>

Комментарии

Класс MenuItemCollection используется для хранения коллекции MenuItem объектов в элементе управления и управления ими Menu . Элемент Menu управления использует MenuItemCollection класс для хранения его корневых элементов меню в свойстве Items . Эта коллекция также используется для свойства MenuItem объекта для ChildItems хранения вложенных элементов меню (если таковые есть).

Класс MenuItemCollection поддерживает несколько способов доступа к элементам в коллекции:

  • Item[] Используйте индексатор для непосредственного получения MenuItem объекта в определенном отсчитываемом от нуля индексе.

  • GetEnumerator Используйте метод для создания перечислителя, который можно использовать для итерации по коллекции.

  • CopyTo Используйте метод для копирования содержимого коллекции в массив.

Вы можете программно управлять MenuItemCollection объектом, добавив и удалив MenuItem объекты. Чтобы добавить элементы меню в коллекцию, используйте Add метод или AddAt метод. Чтобы удалить узлы из коллекции, используйте Removeметод , RemoveAtили Clear метод.

Замечание

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

Класс MenuItemCollection содержит свойства и методы, позволяющие получить сведения о самой коллекции. Чтобы узнать, сколько элементов находится в коллекции, используйте Count свойство. Если вы хотите определить, содержит ли коллекция определенный MenuItem объект, используйте Contains этот метод. Чтобы получить индекс MenuItem объекта в коллекции, используйте IndexOf метод.

Конструкторы

Имя Описание
MenuItemCollection()

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

MenuItemCollection(MenuItem)

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

Свойства

Имя Описание
Count

Возвращает количество элементов меню, содержащихся в текущем MenuItemCollection объекте.

IsSynchronized

Возвращает значение, указывающее, синхронизирован ли доступ к MenuItemCollection объекту (потокобезопасный).

Item[Int32]

MenuItem Возвращает объект по указанному индексу в текущем MenuItemCollection объекте.

SyncRoot

Возвращает объект, который можно использовать для синхронизации доступа к объекту MenuItemCollection .

Методы

Имя Описание
Add(MenuItem)

Добавляет указанный MenuItem объект в конец текущего MenuItemCollection объекта.

AddAt(Int32, MenuItem)

Вставляет указанный MenuItem объект в текущий MenuItemCollection объект по указанному расположению индекса.

Clear()

Удаляет все элементы из текущего MenuItemCollection объекта.

Contains(MenuItem)

Определяет, находится ли указанный MenuItem объект в коллекции.

CopyTo(Array, Int32)

Копирует все элементы из MenuItemCollection объекта в совместимый одномерный Array, начиная с указанного индекса в целевом массиве.

CopyTo(MenuItem[], Int32)

Копирует все элементы из MenuItemCollection объекта в совместимый одномерный массив объектов, начиная с указанного MenuItem индекса в целевом массиве.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель, который можно использовать для итерации элементов в текущем MenuItemCollection объекте.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
IndexOf(MenuItem)

Определяет индекс указанного MenuItem объекта в коллекции.

MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
Remove(MenuItem)

Удаляет указанный MenuItemMenuItemCollection объект из объекта.

RemoveAt(Int32)

Удаляет MenuItem объект по указанному расположению индекса из текущего MenuItemCollection объекта.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

Имя Описание
IStateManager.IsTrackingViewState

Возвращает значение, указывающее, сохраняет ли MenuItemCollection объект изменения в состоянии представления.

IStateManager.LoadViewState(Object)

MenuItemCollection Загружает ранее сохраненное состояние представления объекта.

IStateManager.SaveViewState()

Сохраняет изменения для просмотра состояния в объекте Object.

IStateManager.TrackViewState()

Указывает MenuItemCollection объекту отслеживать изменения состояния представления.

Методы расширения

Имя Описание
AsParallel(IEnumerable)

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

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