MenuItemCollection Classe

Definição

Representa uma coleção de itens de menu num Menu controlo. Esta classe não pode ser herdada.

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
Herança
MenuItemCollection
Implementações

Exemplos

O seguinte exemplo de código demonstra como preencher as Items coleções and ChildItems usando sintaxe declarativa.


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

O exemplo de código seguinte demonstra como adicionar programaticamente um MenuItem objeto à ChildItems coleção de um item do menu raiz.


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

Observações

A MenuItemCollection classe é usada para armazenar e gerir uma coleção de MenuItem objetos no Menu controlo. O Menu controlo usa a MenuItemCollection classe para armazenar os seus itens do menu raiz na Items propriedade. Esta coleção também é usada para a ChildItems propriedade de um MenuItem objeto armazenar os itens do submenu de um item do menu (se existirem).

A MenuItemCollection classe suporta várias formas de aceder aos itens da coleção:

  • Use o Item[] indexador para recuperar diretamente um MenuItem objeto num índice específico baseado em zero.

  • Use o GetEnumerator método para criar um enumerador que possa ser usado para iterar pela coleção.

  • Use o CopyTo método para copiar o conteúdo da coleção num array.

Podes gerir programaticamente um MenuItemCollection objeto adicionando e removendo MenuItem objetos. Para adicionar itens do menu à coleção, use o Add ou o AddAt método. Para remover nós da coleção, use o Remove, o RemoveAt, ou o Clear método.

Note

Quando o controlo Menu está ligado a uma fonte de dados, as Items coleções e ChildItems são automaticamente preenchidas sempre que ocorre a ligação. Quaisquer alterações às coleções entre encadernações serão perdidas. Para manter estas alterações, atualize a fonte de dados ou reconstrua manualmente a coleção cada vez que a vincular.

A MenuItemCollection classe contém propriedades e métodos que permitem obter informações sobre a própria coleção. Para saber quantos itens há na coleção, utilize a Count propriedade. Se quiser determinar se a coleção contém um determinado MenuItem objeto, use o Contains método. Para obter o índice de um MenuItem objeto na coleção, use o IndexOf método.

Construtores

Name Description
MenuItemCollection()

Inicializa uma nova instância da MenuItemCollection classe usando os valores padrão.

MenuItemCollection(MenuItem)

Inicializa uma nova instância da MenuItemCollection classe usando o elemento do menu pai especificado (ou proprietário).

Propriedades

Name Description
Count

Obtém o número de itens do menu contidos no objeto atual MenuItemCollection .

IsSynchronized

Recebe um valor que indica se o acesso ao MenuItemCollection objeto está sincronizado (thread safe).

Item[Int32]

Obtém o MenuItem objeto no índice especificado no objeto atual MenuItemCollection .

SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso ao MenuItemCollection objeto.

Métodos

Name Description
Add(MenuItem)

Anexa o objeto especificado MenuItem ao final do objeto atual MenuItemCollection .

AddAt(Int32, MenuItem)

Insere o objeto especificado MenuItem no objeto atual MenuItemCollection na localização do índice especificada.

Clear()

Remove todos os itens do objeto atual MenuItemCollection .

Contains(MenuItem)

Determina se o objeto especificado MenuItem está na coleção.

CopyTo(Array, Int32)

Copia todos os itens do MenuItemCollection objeto para um unidimensional Arraycompatível , começando no índice especificado no array alvo.

CopyTo(MenuItem[], Int32)

Copia todos os itens do MenuItemCollection objeto para um array unidimensional compatível de MenuItem objectos, começando no índice especificado no array-alvo.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Devolve um enumerador que pode ser usado para iterar pelos itens no objeto atual MenuItemCollection .

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(MenuItem)

Determina o índice do objeto especificado MenuItem na coleção.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Remove(MenuItem)

Remove o objeto especificado MenuItem do MenuItemCollection objeto.

RemoveAt(Int32)

Remove o MenuItem objeto na localização do índice especificado do objeto atual MenuItemCollection .

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IStateManager.IsTrackingViewState

Recebe um valor que indica se o MenuItemCollection objeto está a guardar alterações ao seu estado de visualização.

IStateManager.LoadViewState(Object)

Carrega o MenuItemCollection estado de visualização previamente guardado do objeto.

IStateManager.SaveViewState()

Guarda as alterações ao estado de visualização num Object.

IStateManager.TrackViewState()

Instrui o MenuItemCollection objeto a acompanhar alterações ao seu estado de visualização.

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base num tipo especificado.

Aplica-se a

Ver também