MenuItem Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una voce di menu visualizzata nel controllo Menu. La classe non può essere ereditata.
public ref class MenuItem sealed : ICloneable, System::Web::UI::IStateManager
public sealed class MenuItem : ICloneable, System.Web.UI.IStateManager
type MenuItem = class
interface IStateManager
interface ICloneable
Public NotInheritable Class MenuItem
Implements ICloneable, IStateManager
- Ereditarietà
-
MenuItem
- Implementazioni
Esempio
Nell'esempio seguente viene illustrato come popolare un Menu controllo con oggetti statici usando la sintassi dichiarativa MenuItem .
<%@ 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" >
<head runat="server">
<title>MenuItem Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItem Declarative Example</h3>
<!-- Use declarative syntax to create the -->
<!-- menu structure. Create submenu items -->
<!-- by nesting them within parent menu -->
<!-- items. -->
<asp:menu id="NavigationMenu"
staticdisplaylevels="1"
staticsubmenuindent="10"
orientation="Vertical"
target="_blank"
runat="server">
<items>
<asp:menuitem navigateurl="Home.aspx"
text="Home"
imageurl="Images\Home.gif"
popoutimageurl="Images\Popout.jpg"
tooltip="Home">
<asp:menuitem navigateurl="Music.aspx"
text="Music"
popoutimageurl="Images\Popout.jpg"
tooltip="Music">
<asp:menuitem navigateurl="Classical.aspx"
text="Classical"
separatorimageurl="Images\Separator.jpg"
tooltip="Classical"/>
<asp:menuitem navigateurl="Rock.aspx"
text="Rock"
separatorimageurl="Images\Separator.jpg"
tooltip="Rock"/>
<asp:menuitem navigateurl="Jazz.aspx"
text="Jazz"
separatorimageurl="Images\Separator.jpg"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem navigateurl="Movies.aspx"
text="Movies"
popoutimageurl="Images\Popout.jpg"
tooltip="Movies">
<asp:menuitem navigateurl="Action.aspx"
text="Action"
separatorimageurl="Images\Separator.jpg"
tooltip="Action"/>
<asp:menuitem navigateurl="Drama.aspx"
text="Drama"
separatorimageurl="Images\Separator.jpg"
tooltip="Drama"/>
<asp:menuitem navigateurl="Musical.aspx"
text="Musical"
separatorimageurl="Images\Separator.jpg"
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" >
<head runat="server">
<title>MenuItem Declarative Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItem Declarative Example</h3>
<!-- Use declarative syntax to create the -->
<!-- menu structure. Create submenu items -->
<!-- by nesting them within parent menu -->
<!-- items. -->
<asp:menu id="NavigationMenu"
staticdisplaylevels="1"
staticsubmenuindent="10"
orientation="Vertical"
target="_blank"
runat="server">
<items>
<asp:menuitem navigateurl="Home.aspx"
text="Home"
imageurl="Images\Home.gif"
popoutimageurl="Images\Popout.jpg"
tooltip="Home">
<asp:menuitem navigateurl="Music.aspx"
text="Music"
popoutimageurl="Images\Popout.jpg"
tooltip="Music">
<asp:menuitem navigateurl="Classical.aspx"
text="Classical"
separatorimageurl="Images\Separator.jpg"
tooltip="Classical"/>
<asp:menuitem navigateurl="Rock.aspx"
text="Rock"
separatorimageurl="Images\Separator.jpg"
tooltip="Rock"/>
<asp:menuitem navigateurl="Jazz.aspx"
text="Jazz"
separatorimageurl="Images\Separator.jpg"
tooltip="Jazz"/>
</asp:menuitem>
<asp:menuitem navigateurl="Movies.aspx"
text="Movies"
popoutimageurl="Images\Popout.jpg"
tooltip="Movies">
<asp:menuitem navigateurl="Action.aspx"
text="Action"
separatorimageurl="Images\Separator.jpg"
tooltip="Action"/>
<asp:menuitem navigateurl="Drama.aspx"
text="Drama"
separatorimageurl="Images\Separator.jpg"
tooltip="Drama"/>
<asp:menuitem navigateurl="Musical.aspx"
text="Musical"
separatorimageurl="Images\Separator.jpg"
tooltip="Musical"/>
</asp:menuitem>
</asp:menuitem>
</items>
</asp:menu>
</form>
</body>
</html>
Nell'esempio seguente viene illustrato come associare un Menu controllo a un SiteMapDataSource controllo. Se associato a un'origine dati, il Menu controllo crea automaticamente gli MenuItem oggetti. Per il corretto funzionamento di questo esempio, è necessario copiare i dati della mappa del sito di esempio seguenti in un file denominato Web.sitemap.
<%@ 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 DataBinding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu DataBinding Example</h3>
<!-- Bind the Menu control to a SiteMapDataSource control. -->
<asp:menu id="NavigationMenu"
disappearafter="2000"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
font-names="Arial"
target="_blank"
datasourceid="MenuSource"
runat="server">
<staticmenuitemstyle backcolor="LightSteelBlue"
forecolor="Black"/>
<statichoverstyle backcolor="LightSkyBlue"/>
<dynamicmenuitemstyle backcolor="Black"
forecolor="Silver"/>
<dynamichoverstyle backcolor="LightSkyBlue"
forecolor="Black"/>
</asp:menu>
<asp:SiteMapDataSource id="MenuSource"
runat="server"/>
</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 DataBinding Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>Menu DataBinding Example</h3>
<!-- Bind the Menu control to a SiteMapDataSource control. -->
<asp:menu id="NavigationMenu"
disappearafter="2000"
staticdisplaylevels="2"
staticsubmenuindent="10"
orientation="Vertical"
font-names="Arial"
target="_blank"
datasourceid="MenuSource"
runat="server">
<staticmenuitemstyle backcolor="LightSteelBlue"
forecolor="Black"/>
<statichoverstyle backcolor="LightSkyBlue"/>
<dynamicmenuitemstyle backcolor="Black"
forecolor="Silver"/>
<dynamichoverstyle backcolor="LightSkyBlue"
forecolor="Black"/>
</asp:menu>
<asp:SiteMapDataSource id="MenuSource"
runat="server"/>
</form>
</body>
</html>
Di seguito sono riportati i dati della mappa del sito di esempio per l'esempio precedente.
<siteMap>
<siteMapNode url="~\Home.aspx"
title="Home"
description="Home">
<siteMapNode url="~\Music.aspx"
title="Music"
description="Music">
<siteMapNode url="~\Classical.aspx"
title="Classical"
description="Classical"/>
<siteMapNode url="~\Rock.aspx"
title="Rock"
description="Rock"/>
<siteMapNode url="~\Jazz.aspx"
title="Jazz"
description="Jazz"/>
</siteMapNode>
<siteMapNode url="~\Movies.aspx"
title="Movies"
description="Movies">
<siteMapNode url="~\Action.aspx"
title="Action"
description="Action"/>
<siteMapNode url="~\Drama.aspx"
title="Drama"
description="Drama"/>
<siteMapNode url="~\Musical.aspx"
title="Musical"
description="Musical"/>
</siteMapNode>
</siteMapNode>
</siteMap>
Commenti
Un Menu controllo è costituito da una gerarchia di voci di menu rappresentate dagli MenuItem oggetti. Ogni voce di menu ha una proprietà di sola Depth lettura che specifica il livello a cui viene visualizzata la voce di menu nel Menu controllo. Le voci di menu a livello superiore (livello 0) che non hanno una voce di menu padre sono chiamate voci di menu radice. Una voce di menu con una voce di menu padre è denominata voce di sottomenu. Tutte le voci di menu radice vengono archiviate nella Items raccolta. Gli elementi del sottomenu vengono archiviati nella raccolta della voce di ChildItems menu padre. È possibile accedere alla voce di menu padre di una voce di menu usando la Parent proprietà .
Nota
Le Items raccolte e ChildItems contengono solo le voci di menu per il livello successivo. Per accedere alle voci di menu ulteriormente verso il basso, usare la ChildItems proprietà di una voce di menu successiva.
Per creare le voci di menu per un Menu controllo, usare uno dei metodi seguenti:
Usare la sintassi dichiarativa per creare voci di menu statiche.
Usare un costruttore per creare dinamicamente nuove istanze della MenuItem classe. Questi MenuItem oggetti possono quindi essere aggiunti all'insieme Items o ChildItems .
Associare il controllo a un'origine Menu dati. Quando il Menu controllo è associato a un SiteMapDataSource controllo, MenuItem gli oggetti vengono creati automaticamente che corrispondono agli elementi nell'origine dati. Per altre origini dati, MenuItem gli oggetti vengono creati automaticamente che corrispondono alla struttura della gerarchia dell'origine dati. È tuttavia necessario usare la DataBindings raccolta per definire le associazioni delle voci di menu che specificano la relazione di associazione tra una voce di menu e la relativa voce di dati corrispondente.
Le voci di menu vengono visualizzate in un menu statico o in un menu dinamico, a seconda del relativo livello. Il menu statico viene sempre visualizzato in un Menu controllo. Per impostazione predefinita, le voci di menu a livello superiore (livello 0) vengono visualizzate nel menu statico. È possibile visualizzare livelli di menu aggiuntivi (sottomenus statici) nel menu statico impostando la StaticDisplayLevels proprietà. Le voci di menu (se presenti) con un livello superiore al valore specificato dalla StaticDisplayLevels proprietà vengono visualizzate in un sottomenu dinamico. Viene visualizzato un sottomenu dinamico solo quando l'utente posiziona il puntatore del mouse sulla voce di menu padre che contiene un sottomenu dinamico.
Quando l'utente fa clic su una voce di menu, il Menu controllo può passare a una pagina Web collegata o semplicemente pubblicarlo al server. Se la NavigateUrl proprietà di una voce di menu è impostata, il Menu controllo passa alla pagina collegata; in caso contrario, pubblica la pagina al server per l'elaborazione. Per impostazione predefinita, una pagina collegata viene visualizzata nella stessa finestra o cornice del Menu controllo. Per visualizzare il contenuto collegato in una finestra o un frame diverso, usare la Target proprietà del Menu controllo.
Nota
La Menu.Target proprietà influisce su ogni voce di menu del controllo. Per specificare una finestra o un frame per una singola voce di menu, impostare direttamente la Target proprietà dell'oggetto MenuItem .
Ogni voce di menu ha una TextValue proprietà e. Il valore della Text proprietà viene visualizzato nel Menu controllo, mentre la Value proprietà viene usata per archiviare eventuali dati aggiuntivi sulla voce di menu, ad esempio i dati passati all'evento postback associato alla voce di menu. Se si imposta la Text proprietà, ma lasciare non impostata la Value proprietà, la Value proprietà viene impostata automaticamente con lo stesso valore della Text proprietà. Questa considerazione si applica anche al contrario. Se si imposta la Value proprietà, ma non la Text proprietà, la Text proprietà viene impostata automaticamente con lo stesso valore della Value proprietà.
Nota
Le voci di menu allo stesso livello di menu devono avere un valore univoco per la Value proprietà. Il Menu controllo non può distinguere tra voci di menu diverse allo stesso livello con lo stesso valore. In questo scenario, se l'utente fa clic su una voce di menu con un valore duplicato, viene selezionata la voce di menu visualizzata prima nel menu.
Per visualizzare una descrizione comando quando l'utente posiziona il puntatore del mouse su una voce di menu, impostare la proprietà dell'elemento ToolTip .
Un Menu controllo include diversi tipi di voci di menu. È possibile controllare lo stile (ad esempio le dimensioni del carattere e il colore) per i diversi tipi di voci di menu usando le proprietà nella tabella seguente.
Proprietà stile voce di menu | Descrizione |
---|---|
DynamicHoverStyle | Impostazioni di stile per una voce di menu dinamica quando il puntatore del mouse viene posizionato su di esso. |
DynamicMenuItemStyle | Impostazioni di stile per una singola voce di menu dinamica. |
DynamicMenuStyle | Impostazioni di stile per un menu dinamico. |
DynamicSelectedStyle | Impostazioni di stile per la voce di menu dinamica attualmente selezionata. |
StaticHoverStyle | Impostazioni di stile per una voce di menu statica quando il puntatore del mouse viene posizionato su di esso. |
StaticMenuItemStyle | Impostazioni di stile per una singola voce di menu statica. |
StaticMenuStyle | Impostazioni di stile per un menu statico. |
StaticSelectedStyle | Impostazioni di stile per la voce di menu statica attualmente selezionata. |
Anziché impostare le singole proprietà di stile, è possibile specificare gli stili applicati alle voci di menu in base al loro livello usando le raccolte di stili visualizzate nella tabella seguente.
Raccolte di stili di livello | Descrizione |
---|---|
LevelMenuItemStyles | Raccolta di MenuItemStyle oggetti che controllano lo stile delle voci di menu in base al loro livello. |
LevelSelectedStyles | Raccolta di oggetti che controllano lo stile delle voci di MenuItemStyle menu selezionate in base al livello. |
LevelSubMenuStyles | Raccolta di MenuItemStyle oggetti che controllano lo stile degli elementi del sottomenu in base al relativo livello. |
Il primo stile della raccolta corrisponde allo stile delle voci di menu al primo livello di profondità nell'albero dei menu. Il secondo stile della raccolta corrisponde allo stile delle voci di menu al secondo livello di profondità nell'albero dei menu e così via. Questo è più spesso usato per generare menu di spostamento in stile contenuto in cui le voci di menu a una certa profondità devono avere lo stesso aspetto, indipendentemente dal fatto che abbiano sottomenus.
Nota
Se si usa una delle raccolte di stili di livello elencate nella tabella precedente per definire lo stile per il controllo, queste impostazioni di stile sostituiscono le singole proprietà dello stile della voce di Menu menu.
Oltre a personalizzare lo stile di una voce di menu, è anche possibile personalizzarne l'aspetto. È possibile specificare immagini personalizzate per le diverse parti per una voce di menu impostando le proprietà nella tabella seguente.
Image, proprietà | Descrizione |
---|---|
ImageUrl | Immagine facoltativa visualizzata accanto al testo di una voce di menu. |
PopOutImageUrl | Immagine facoltativa visualizzata in una voce di menu per indicare che la voce di menu ha un sottomenu dinamico. |
SeparatorImageUrl | Immagine facoltativa visualizzata nella parte inferiore di una voce di menu per separarla da altre voci di menu. |
Per determinare se una voce di menu è attualmente selezionata in un Menu controllo, usare la Selected proprietà . È anche possibile determinare se una voce di menu è associata ai dati usando la DataBound proprietà . Se una voce di menu è associata ai dati, è possibile usare la DataItem proprietà per accedere ai valori della voce di dati associata alla voce di menu.
Per un elenco dei valori iniziali delle proprietà di un'istanza della classe MenuItem, vedere il costruttore MenuItem.
Costruttori
MenuItem() |
Inizializza una nuova istanza della classe MenuItem senza testo o valore per il menu. |
MenuItem(String) |
Inizializza una nuova istanza della classe MenuItem utilizzando il testo di menu specificato. |
MenuItem(String, String) |
Inizializza una nuova istanza della classe MenuItem utilizzando il testo e il valore di menu specificati. |
MenuItem(String, String, String) |
Inizializza una nuova istanza della classe MenuItem utilizzando il testo e il valore di menu e l'URL di un'immagine specificati. |
MenuItem(String, String, String, String) |
Inizializza una nuova istanza della classe MenuItem utilizzando il testo e il valore di menu, l'URL di un'immagine e l'URL di navigazione specificati. |
MenuItem(String, String, String, String, String) |
Inizializza una nuova istanza della classe MenuItem utilizzando il testo e il valore di menu, l'URL di un'immagine, l'URL di navigazione e la destinazione specificati. |
Proprietà
ChildItems |
Ottiene un oggetto MenuItemCollection contenente le voci di sottomenu della voce di menu corrente. |
DataBound |
Ottiene un valore che indica se la voce di menu è stata creata tramite associazione dati. |
DataItem |
Ottiene l'elemento di dati associato alla voce di menu. |
DataPath |
Ottiene il percorso dei dati associati alla voce di menu. |
Depth |
Ottiene il livello a cui viene visualizzata una voce di menu. |
Enabled |
Ottiene o imposta un valore che indica se l'oggetto MenuItem è abilitato, consentendo all'elemento di visualizzare un'immagine popout e le eventuali voci di menu figlio. |
ImageUrl |
Ottiene o imposta l'URL di un'immagine visualizzata accanto al testo di una voce di menu. |
NavigateUrl |
Ottiene o imposta l'URL a cui passare quando viene selezionata la voce di menu. |
Parent |
Ottiene la voce di menu padre della voce di menu corrente. |
PopOutImageUrl |
Ottiene o imposta l'URL di un'immagine visualizzata in una voce di menu per indicare che la voce di menu dispone di un sottomenu dinamico. |
Selectable |
Ottiene o imposta un valore che indica se l'oggetto MenuItem può essere selezionato, ovvero se è possibile fare clic su di esso. |
Selected |
Ottiene o imposta un valore che indica se la voce di menu corrente è selezionata in un controllo Menu. |
SeparatorImageUrl |
Ottiene o imposta l'URL di un'immagine visualizzata nella parte inferiore di una voce di menu per separarla da altre voci di menu. |
Target |
Ottiene o imposta la finestra o il frame di destinazione in cui visualizzare il contenuto della pagina Web associato a una voce di menu. |
Text |
Ottiene o imposta il testo visualizzato per la voce di menu in un controllo Menu. |
ToolTip |
Ottiene o imposta il testo della descrizione comando della voce di menu. |
Value |
Ottiene o imposta un valore non visualizzato utilizzato per archiviare dati aggiuntivi relativi alla voce di menu, ad esempio i dati utilizzati per la gestione degli eventi di postback. |
ValuePath |
Ottiene il percorso dalla voce di menu radice alla voce di menu corrente. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
ICloneable.Clone() |
Crea una copia dell'oggetto MenuItem corrente. |
IStateManager.IsTrackingViewState |
Ottiene un valore che indica se l'oggetto MenuItem salva le modifiche apportate al relativo stato di visualizzazione. |
IStateManager.LoadViewState(Object) |
Carica lo stato di visualizzazione precedentemente salvato della voce di menu. |
IStateManager.SaveViewState() |
Salva le modifiche apportate allo stato di visualizzazione in un oggetto Object. |
IStateManager.TrackViewState() |
Indica all'oggetto MenuItem di tenere traccia delle modifiche apportate allo stato di visualizzazione. |