MenuItemCollection Klasa

Definicja

Reprezentuje kolekcję elementów menu w kontrolce Menu . Klasa ta nie może być dziedziczona.

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
Dziedziczenie
MenuItemCollection
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano, jak wypełnić Items kolekcje i ChildItems przy użyciu składni deklaratywnej.


<%@ 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>

W poniższym przykładzie kodu pokazano, jak programowo dodać MenuItem obiekt do ChildItems kolekcji elementu menu głównego.


<%@ 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>

Uwagi

Klasa MenuItemCollection służy do przechowywania kolekcji MenuItem obiektów w kontrolce Menu i zarządzania nimi. Kontrolka MenuMenuItemCollection używa klasy do przechowywania elementów menu głównego we Items właściwości . Ta kolekcja jest również używana dla ChildItems właściwości MenuItem obiektu do przechowywania elementów podrzędnych elementu menu (jeśli istnieją).

Klasa MenuItemCollection obsługuje kilka sposobów uzyskiwania dostępu do elementów w kolekcji:

  • Użyj indeksatora Item[] , aby bezpośrednio pobrać MenuItem obiekt w określonym indeksie opartym na zerze.

  • GetEnumerator Użyj metody , aby utworzyć moduł wyliczający, który może służyć do iteracji po kolekcji.

  • CopyTo Użyj metody , aby skopiować zawartość kolekcji do tablicy.

Obiekt można zarządzać MenuItemCollection programowo, dodając i usuwając MenuItem obiekty. Aby dodać elementy menu do kolekcji, użyj Add metody lub AddAt . Aby usunąć węzły z kolekcji, użyj Removemetody , RemoveAtlub Clear .

Uwaga

Gdy kontrolka Menu jest powiązana ze źródłem danych, Items kolekcje i ChildItems są automatycznie wypełniane za każdym razem, gdy występuje powiązanie. Wszelkie zmiany w kolekcjach między powiązaniami zostaną utracone. Aby zachować te zmiany, zaktualizuj źródło danych lub ręcznie ponownie skompiluj kolekcję przy każdym powiązaniu.

Klasa MenuItemCollection zawiera właściwości i metody, które umożliwiają pobieranie informacji o samej kolekcji. Aby dowiedzieć się, ile elementów znajduje się w kolekcji, użyj Count właściwości . Jeśli chcesz określić, czy kolekcja zawiera określony MenuItem obiekt, użyj Contains metody . Aby uzyskać indeks MenuItem obiektu w kolekcji, użyj IndexOf metody .

Konstruktory

MenuItemCollection()

Inicjuje MenuItemCollection nowe wystąpienie klasy przy użyciu wartości domyślnych.

MenuItemCollection(MenuItem)

Inicjuje MenuItemCollection nowe wystąpienie klasy przy użyciu określonego nadrzędnego elementu menu (lub właściciela).

Właściwości

Count

Pobiera liczbę elementów menu zawartych w bieżącym MenuItemCollection obiekcie.

IsSynchronized

Pobiera wartość wskazującą, czy dostęp do MenuItemCollection obiektu jest synchronizowany (bezpieczny wątek).

Item[Int32]

MenuItem Pobiera obiekt w określonym indeksie w bieżącym MenuItemCollection obiekcie.

SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do MenuItemCollection obiektu.

Metody

Add(MenuItem)

Dołącza określony MenuItem obiekt na końcu bieżącego MenuItemCollection obiektu.

AddAt(Int32, MenuItem)

Wstawia określony MenuItem obiekt w bieżącym MenuItemCollection obiekcie w określonej lokalizacji indeksu.

Clear()

Usuwa wszystkie elementy z bieżącego MenuItemCollection obiektu.

Contains(MenuItem)

Określa, czy określony MenuItem obiekt znajduje się w kolekcji.

CopyTo(Array, Int32)

Kopiuje wszystkie elementy z MenuItemCollection obiektu do zgodnego jednowymiarowego Array, zaczynając od określonego indeksu w tablicy docelowej.

CopyTo(MenuItem[], Int32)

Kopiuje wszystkie elementy z MenuItemCollection obiektu do zgodnej jednowymiarowej tablicy MenuItem obiektów, począwszy od określonego indeksu w tablicy docelowej.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

Zwraca moduł wyliczający, który może służyć do iterowania elementów w bieżącym MenuItemCollection obiekcie.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IndexOf(MenuItem)

Określa indeks określonego MenuItem obiektu w kolekcji.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Remove(MenuItem)

Usuwa określony MenuItem obiekt z MenuItemCollection obiektu .

RemoveAt(Int32)

MenuItem Usuwa obiekt w określonej lokalizacji indeksu z bieżącego MenuItemCollection obiektu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy MenuItemCollection obiekt zapisuje zmiany w stanie widoku.

IStateManager.LoadViewState(Object)

MenuItemCollection Ładuje wcześniej zapisany stan widoku obiektu.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w obiekcie Object.

IStateManager.TrackViewState()

Instruuje obiekt, MenuItemCollection aby śledzić zmiany stanu widoku.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy obiektu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Zobacz też