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 на основе указанного типа. |