Cenni preliminari sul controllo Menu

Aggiornamento: novembre 2007

Il controllo Menu ASP.NET consente di sviluppare menu visualizzati in modo statico e in modo dinamico per le pagine Web ASP.NET.

Vengono illustrati i seguenti argomenti:

  • Informazioni di supporto

  • Esempi di codice

  • Riferimento alle classi

Informazioni di supporto

Il controllo Menu dispone di due modalità di visualizzazione: statica e dinamica. Nella visualizzazione statica, il controllo Menu è costantemente espanso in tutte le sue parti. L'intera struttura è visibile e l'utente può fare clic con il mouse su ogni sua parte. In un menu a visualizzazione dinamica, l'utente specifica le parti statiche, mentre le rispettive voci di menu figlio vengono visualizzate posizionando il puntatore del mouse sul nodo padre.

È possibile configurare i contenuti del controllo Menu direttamente all'interno del controllo stesso, oppure è possibile specificarne i contenuti associando il controllo a un'origine dati. È possibile regolare l'aspetto, l'orientamento e il contenuto di un controllo Menu ASP.NET senza dover scrivere codice. Oltre alle proprietà visive esposte, il controllo supporta i temi e le interfacce dei controlli ASP.NET. Per ulteriori informazioni sui temi e le interfacce, vedere Cenni preliminari su temi e interfacce ASP.NET.

Comportamento di visualizzazione statica

È possibile impostare il comportamento di visualizzazione statica utilizzando la proprietà StaticDisplayLevels del controllo Menu. La proprietà StaticDisplayLevels indica quanti livelli devono essere visualizzati staticamente dalla radice del menu. Ad esempio, se StaticDisplayLevels è impostato su 3, il menu si espande per visualizzare staticamente i primi tre livelli. Il livello minimo di visualizzazione statica è 1. Se il valore è impostato su 0 o su un numero negativo, il controllo genera un'eccezione.

Comportamento di visualizzazione dinamica

La proprietà MaximumDynamicDisplayLevels indica il numero di livelli di nodi menu che devono essere visualizzati in modo dinamico a partire dal livello di visualizzazione statica. Ad esempio, se il menu ha un livello statico di 3 e un livello dinamico di 2, i primi tre livelli del menu verranno visualizzati in modo statico, mentre i due successivi verranno visualizzati in modo dinamico.

Se il valore di MaximumDynamicDisplayLevels è impostato su 0, nessun nodo menu verrà visualizzato in modo dinamico. Se il valore di MaximumDynamicDisplayLevels è impostato su un numero negativo, verrà generata un'eccezione.

Definizione del contenuto del menu

È possibile definire il contenuto del controllo Menu in due modi: aggiungendo singoli oggetti MenuItem, in modo dichiarativo o a livello di codice, oppure effettuando un'associazione dati fra il controllo e un'origine dati XML.

Aggiunta manuale di voci di menu

È possibile aggiungere singole voci di menu al controllo specificandole nella proprietà Items. La proprietà Items è un insieme di oggetti MenuItem. Nell'esempio riportato di seguito viene illustrato il markup dichiarativo per un controllo Menu con tre voci, ciascuna delle quali ha due elementi figlio.

<asp:Menu ID="Menu1"  StaticDisplayLevels="3">
  <Items>
    <asp:MenuItem Text="File" Value="File">
      <asp:MenuItem Text="New" Value="New"></asp:MenuItem>
      <asp:MenuItem Text="Open" Value="Open"></asp:MenuItem>
    </asp:MenuItem>
    <asp:MenuItem Text="Edit" Value="Edit">
      <asp:MenuItem Text="Copy" Value="Copy"></asp:MenuItem>
      <asp:MenuItem Text="Paste" Value="Paste"></asp:MenuItem>
    </asp:MenuItem>
    <asp:MenuItem Text="View" Value="View">
      <asp:MenuItem Text="Normal" Value="Normal"></asp:MenuItem>
      <asp:MenuItem Text="Preview" Value="Preview"></asp:MenuItem>
    </asp:MenuItem>
  </Items>
</asp:Menu>

Associazione dati a un'origine dati XML

L'associazione a un file XML consente di gestire il contenuto del menu apportando modifiche al file, anziché utilizzando la finestra di progettazione. In questo modo, è possibile aggiornare le impostazioni di spostamento all'interno del sito senza rivedere il controllo Menu o modificare il codice. Se il contenuto del sito cambia, è possibile utilizzare un file XML per organizzare il contenuto e inserirlo nel controllo Menu, in modo da garantire che il contenuto sia accessibile a tutti gli utenti del sito Web.

Aspetto e comportamento

È possibile regolare il comportamento del controllo Menu mediante le sue proprietà. È inoltre possibile regolare il comportamento di visualizzazione dinamica, inclusa la durata del tempo di visualizzazione di un nodo menu. Ad esempio, per modificare l'orientamento di Menu da orizzontale a verticale, è possibile impostare la proprietà Orientation come descritto di seguito:

[Visual Basic]

Menu.Orientation = Orientation.Vertical

[C#]

Menu.Orientation = Orientation.Vertical;

Impostando la proprietà su Orientation.Horizontal, l'orientamento diventa nuovamente orizzontale.

È possibile impostare singole proprietà del controllo Menu per specificare dimensione, colore, carattere e altre caratteristiche dell'aspetto. È inoltre possibile applicare interfacce e temi al controllo Menu.

Stile

Ciascun livello di menu supporta le proprietà di stile. Se non sono state impostate proprietà di stile dinamico, verranno applicate le proprietà di stile statico. Se sono state impostate proprietà di stile dinamico ma non di stile statico, per queste ultime verrà applicata l'impostazione del rendering di stile statico predefinita. Di seguito viene riportata la gerarchia di stile del controllo Menu.

  1. Controllo

  2. SubMenuStyles

  3. MenuItemStyles

  4. SelectedItemStyles

  5. HoverMenuItemStyles

Questi stili sono uniti nei menu statici e dinamici in base alla seguente logica:

  • Ciascun singolo stile viene applicato all'azione o al tipo di elemento appropriato.

  • Ciascuno stile è unito allo stile che lo precede nella gerarchia, con l'override dell'ultimo stile.

    Nota:

    I menu statici non si uniscono mai e, in assenza di definizione di uno stile statico, viene applicato lo stile dinamico.

Durata di visualizzazione dinamica

Un aspetto del menu dinamico è la durata del tempo di visualizzazione di una parte dinamica del menu prima che venga nascosta. Questo valore è configurabile in millisecondi regolando la proprietà DisappearAfter come indicato di seguito.

[Visual Basic]

Menu.DisappearAfter = 1000

[C#]

Menu.DisappearAfter = 1000;

Il valore predefinito è 500 millisecondi. Se il valore di DisappearAfter è impostato su 0, appena l'utente si sposta all'esterno del controllo Menu questo verrà immediatamente nascosto. Se il valore è impostato su -1, il tempo di visualizzazione è illimitato. La porzione dinamica verrà nascosta solo facendo clic con il mouse al di fuori del controllo Menu.

Utilizzo del controllo Menu con controlli UpdatePanel

I controlli UpdatePanel vengono utilizzati per aggiornare aree selezionate di una pagina anziché l'intera pagina con un postback. Il controllo Menu può essere utilizzato all'interno di un controllo UpdatePanel con la restrizione per cui gli stili devono essere applicati utilizzando un riferimento a una classe Foglio di stile CSS. Ad esempio, anziché impostare la proprietà DynamicHoverStyle utilizzando un attributo proprietà-sottoproprietà, impostare lo stile utilizzando l'attributo proprietà-ClasseCss. Analogamente, quando si utilizza il modello DynamicHoverStyle per impostare uno stile, utilizzare l'attributo CssClass del modello.

Per ulteriori informazioni sull'utilizzo dei controlli UpdatePanel, vedere Cenni preliminari sui controlli UpdatePanel e Cenni preliminari sul rendering a pagina parziale.

Esempi di codice

Utilizzo di CSS e degli stili con il controllo Menu

Utilizzo di immagini con il controllo Menu

Procedura dettagliata: visualizzazione di un menu in pagine Web

Procedura dettagliata: controllo del menu a livello di codice di ASP.NET

Torna all'inizio

Riferimento alle classi

Nella tabella riportata di seguito sono elencate le classi correlate al controllo Menu.

Membro

Descrizione

Menu

Classe principale per il controllo.

MenuEventArgs

Fornisce i dati per gli eventi MenuItemClick e MenuItemDataBound di un controllo Menu.

MenuEventHandler

Rappresenta il metodo che gestisce l'evento MenuItemClick o MenuItemDataBound di un controllo Menu.

MenuItem

Rappresenta una voce di menu visualizzata nel controllo Menu.

MenuItemBinding

Definisce la relazione tra un elemento di dati e la voce di menu a cui viene associato in un controllo Menu.

MenuItemBindingCollection

Rappresenta un insieme di oggetti MenuItemBinding.

MenuItemCollection

Rappresenta un insieme di voci di menu in un controllo Menu.

MenuItemStyle

Rappresenta lo stile di una voce di menu in un controllo Menu.

MenuItemStyleCollection

Rappresenta un insieme di oggetti MenuItemStyle in un controllo Menu.

Torna all'inizio

Vedere anche

Concetti

Cenni preliminari sugli spostamenti all'interno dei siti ASP.NET

Riferimenti

Menu

Altre risorse

Controlli della Casella degli strumenti di esplorazione