Condividi tramite


MenuItemCollection Classe

Definizione

Rappresenta una raccolta di voci di menu in un Menu controllo . Questa classe non può essere ereditata.

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
Ereditarietà
MenuItemCollection
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come popolare le raccolte e ChildItems usando la Items sintassi dichiarativa.


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

Nell'esempio di codice seguente viene illustrato come aggiungere un MenuItem oggetto a livello di codice all'insieme ChildItems di una voce di menu radice.


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

Commenti

La MenuItemCollection classe viene utilizzata per archiviare e gestire una raccolta di MenuItem oggetti nel Menu controllo . Il Menu controllo usa la MenuItemCollection classe per archiviare le voci di menu radice nella Items proprietà . Questa raccolta viene utilizzata anche per la ChildItems proprietà di un MenuItem oggetto per archiviare gli elementi del sottomenu di una voce di menu ,se presenti.

La MenuItemCollection classe supporta diversi modi per accedere agli elementi nella raccolta:

  • Usare l'indicizzatore Item[] per recuperare direttamente un MenuItem oggetto in corrispondenza di un indice in base zero specifico.

  • Utilizzare il GetEnumerator metodo per creare un enumeratore che può essere usato per scorrere la raccolta.

  • Utilizzare il CopyTo metodo per copiare il contenuto della raccolta in una matrice.

È possibile gestire a livello di codice un MenuItemCollection oggetto aggiungendo e rimuovendo MenuItem oggetti. Per aggiungere voci di menu alla raccolta, utilizzare il AddAddAt metodo o . Per rimuovere nodi dalla raccolta, usare , Removeo RemoveAtil Clear metodo .

Annotazioni

Quando il Menu controllo è associato a un'origine dati, le raccolte e ChildItems vengono popolate automaticamente ogni volta che si verifica l'associazioneItems. Eventuali modifiche apportate alle raccolte tra associazioni andranno perse. Per conservare queste modifiche, aggiornare l'origine dati o ricompilare manualmente la raccolta ogni volta che si esegue l'associazione.

La MenuItemCollection classe contiene proprietà e metodi che consentono di recuperare informazioni sulla raccolta stessa. Per scoprire quanti elementi si trovano nella raccolta, utilizzare la Count proprietà . Se si desidera determinare se l'insieme contiene un determinato MenuItem oggetto, utilizzare il Contains metodo . Per ottenere l'indice di un MenuItem oggetto nell'insieme, utilizzare il IndexOf metodo .

Costruttori

Nome Descrizione
MenuItemCollection()

Inizializza una nuova istanza della MenuItemCollection classe utilizzando i valori predefiniti.

MenuItemCollection(MenuItem)

Inizializza una nuova istanza della MenuItemCollection classe utilizzando la voce di menu padre specificata (o proprietario).

Proprietà

Nome Descrizione
Count

Ottiene il numero di voci di menu contenute nell'oggetto corrente MenuItemCollection .

IsSynchronized

Ottiene un valore che indica se l'accesso all'oggetto MenuItemCollection è sincronizzato (thread-safe).

Item[Int32]

Ottiene l'oggetto MenuItem in corrispondenza dell'indice specificato nell'oggetto corrente MenuItemCollection .

SyncRoot

Ottiene un oggetto che può essere utilizzato per sincronizzare l'accesso all'oggetto MenuItemCollection .

Metodi

Nome Descrizione
Add(MenuItem)

Aggiunge l'oggetto specificato MenuItem alla fine dell'oggetto corrente MenuItemCollection .

AddAt(Int32, MenuItem)

Inserisce l'oggetto specificato MenuItem nell'oggetto corrente MenuItemCollection in corrispondenza della posizione di indice specificata.

Clear()

Rimuove tutti gli elementi dall'oggetto corrente MenuItemCollection .

Contains(MenuItem)

Determina se l'oggetto specificato MenuItem si trova nell'insieme.

CopyTo(Array, Int32)

Copia tutti gli elementi dall'oggetto MenuItemCollection in un oggetto unidimensionale Arraycompatibile, a partire dall'indice specificato nella matrice di destinazione.

CopyTo(MenuItem[], Int32)

Copia tutti gli elementi dall'oggetto MenuItemCollection in una matrice unidimensionale compatibile di MenuItem oggetti, a partire dall'indice specificato nella matrice di destinazione.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetEnumerator()

Restituisce un enumeratore che può essere utilizzato per scorrere gli elementi nell'oggetto corrente MenuItemCollection .

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
IndexOf(MenuItem)

Determina l'indice dell'oggetto specificato MenuItem nell'insieme.

MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
Remove(MenuItem)

Rimuove l'oggetto specificato MenuItem dall'oggetto MenuItemCollection .

RemoveAt(Int32)

Rimuove l'oggetto MenuItem in corrispondenza della posizione di indice specificata dall'oggetto corrente MenuItemCollection .

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IStateManager.IsTrackingViewState

Ottiene un valore che indica se l'oggetto MenuItemCollection sta salvando le modifiche apportate allo stato di visualizzazione.

IStateManager.LoadViewState(Object)

Carica lo MenuItemCollection stato di visualizzazione salvato in precedenza dell'oggetto.

IStateManager.SaveViewState()

Salva le modifiche apportate allo stato di visualizzazione in un oggetto Object.

IStateManager.TrackViewState()

Indica all'oggetto MenuItemCollection di tenere traccia delle modifiche apportate allo stato di visualizzazione.

Metodi di estensione

Nome Descrizione
AsParallel(IEnumerable)

Abilita la parallelizzazione di una query.

AsQueryable(IEnumerable)

Converte un IEnumerable in un IQueryable.

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un IEnumerable al tipo specificato.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un IEnumerable in base a un tipo specificato.

Si applica a

Vedi anche