MenuItem Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt ein Menüelement dar, das im MenuSteuerelement angezeigt wird. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
MenuItem
- Implementiert
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie ein Menu Steuerelement mit statischen MenuItem Objekten mit deklarativer Syntax aufgefüllt wird.
<%@ 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>
Das folgende Beispiel veranschaulicht, wie ein Menu Steuerelement an ein SiteMapDataSource Steuerelement gebunden wird. Wenn sie an eine Datenquelle gebunden sind, erstellt das Menu Steuerelement automatisch die MenuItem Objekte. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie die unten aufgeführten Beispiel-Websitezuordnungsdaten in eine Datei mit dem Namen "Web.sitemap" kopieren.
<%@ 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>
Im folgenden Beispiel sind Beispiel-Websitezuordnungsdaten für das vorherige Beispiel aufgeführt.
<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>
Hinweise
Ein Menu Steuerelement besteht aus einer Hierarchie von Menüelementen, die durch MenuItem Objekte dargestellt werden. Jedes Menüelement verfügt über eine schreibgeschützte Depth Eigenschaft, die die Ebene angibt, auf der das Menüelement im Menu Steuerelement angezeigt wird. Menüelemente auf oberster Ebene (Ebene 0), die nicht über ein übergeordnetes Menüelement verfügen, werden als Stammmenüelemente bezeichnet. Ein Menüelement mit einem übergeordneten Menüelement wird als Untermenüelement bezeichnet. Alle Stammmenüelemente werden in der Items Auflistung gespeichert. Untermenüelemente werden in der Auflistung eines übergeordneten Menüelements ChildItems gespeichert. Sie können mithilfe der Parent Eigenschaft auf das übergeordnete Menüelement eines Menüelements zugreifen.
Hinweis
Die Items auflistungen ChildItems enthalten nur die Menüelemente für die nächste Ebene nach unten. Um weiter unten in der Menüstruktur auf Menüelemente zuzugreifen, verwenden Sie die ChildItems Eigenschaft eines nachfolgenden Menüelements.
Verwenden Sie eine der folgenden Methoden, um die Menüelemente für ein Menu Steuerelement zu erstellen:
Verwenden Sie deklarative Syntax, um statische Menüelemente zu erstellen.
Verwenden Sie einen Konstruktor, um dynamisch neue Instanzen der MenuItem Klasse zu erstellen. Diese MenuItem Objekte können dann der Items Oder-Auflistung ChildItems hinzugefügt werden.
Binden Sie das Menu Steuerelement an eine Datenquelle. Wenn das Menu Steuerelement an ein SiteMapDataSource Steuerelement gebunden ist, werden Objekte automatisch erstellt, MenuItem die den Elementen in der Datenquelle entsprechen. Für andere Datenquellen werden objekte auch automatisch erstellt, MenuItem die der Hierarchiestruktur der Datenquelle entsprechen. Sie müssen jedoch auch die DataBindings Auflistung verwenden, um die Menüelementbindungen zu definieren, die die Bindungsbeziehung zwischen einem Menüelement und dem entsprechenden Datenelement angeben.
Die Menüelemente werden je nach Ebene in einem statischen Menü oder einem dynamischen Menü angezeigt. Das statische Menü wird immer in einem Menu Steuerelement angezeigt. Standardmäßig werden die Menüelemente auf oberster Ebene (Ebene 0) im statischen Menü angezeigt. Sie können zusätzliche Menüebenen (statische Untermenüs) im statischen Menü anzeigen, indem Sie die StaticDisplayLevels Eigenschaft festlegen. Menüelemente (sofern vorhanden) mit einer höheren Ebene als der durch die StaticDisplayLevels Eigenschaft angegebene Wert werden in einem dynamischen Untermenü angezeigt. Ein dynamisches Untermenü wird nur angezeigt, wenn der Benutzer den Mauszeiger über das übergeordnete Menüelement positioniert, das ein dynamisches Untermenü enthält.
Wenn der Benutzer auf ein Menüelement klickt, kann das Menu Steuerelement entweder zu einer verknüpften Webseite navigieren oder einfach wieder auf dem Server posten. Wenn die NavigateUrl Eigenschaft eines Menüelements festgelegt ist, navigiert das Menu Steuerelement zur verknüpften Seite. Andernfalls wird die Seite wieder auf dem Server zur Verarbeitung bereitgestellt. Standardmäßig wird eine verknüpfte Seite im selben Fenster oder Rahmen wie das Menu Steuerelement angezeigt. Verwenden Sie die Target Eigenschaft des Menu Steuerelements, um den verknüpften Inhalt in einem anderen Fenster oder Frame anzuzeigen.
Hinweis
Die Menu.Target Eigenschaft wirkt sich auf jedes Menüelement im Steuerelement aus. Um ein Fenster oder einen Rahmen für ein einzelnes Menüelement anzugeben, legen Sie die Target Eigenschaft des MenuItem Objekts direkt fest.
Jedes Menüelement verfügt über eine Text und eine Value Eigenschaft. Der Wert der Text Eigenschaft wird im Menu Steuerelement angezeigt, während die Value Eigenschaft verwendet wird, um zusätzliche Daten zum Menüelement zu speichern, z. B. Daten, die an das Postbackereignis übergeben werden, das dem Menüelement zugeordnet ist. Wenn Sie die Text Value Eigenschaft festlegen, die Eigenschaft jedoch nichtet lassen, wird die Value Eigenschaft automatisch mit demselben Wert wie die Text Eigenschaft festgelegt. Dies gilt auch für den umgekehrten Fall. Wenn Sie die Value Eigenschaft festlegen, aber nicht die Text Eigenschaft, wird die Text Eigenschaft automatisch mit demselben Wert wie die Value Eigenschaft festgelegt.
Hinweis
Menüelemente auf derselben Menüebene müssen jeweils einen eindeutigen Wert für die Value Eigenschaft aufweisen. Das Menu Steuerelement kann nicht zwischen verschiedenen Menüelementen auf derselben Ebene unterscheiden, die denselben Wert aufweist. Wenn der Benutzer in diesem Szenario auf ein Menüelement klickt, das einen doppelten Wert aufweist, wird das Menüelement ausgewählt, das zuerst im Menü angezeigt wird.
Um eine QuickInfo anzuzeigen, wenn der Benutzer den Mauszeiger über ein Menüelement positioniert, legen Sie die Eigenschaft des ToolTip Elements fest.
Ein Menu Steuerelement verfügt über mehrere verschiedene Arten von Menüelementen. Sie können die Formatvorlage (z. B. Schriftgrad und Farbe) für die verschiedenen Menüelementtypen steuern, indem Sie die Eigenschaften in der folgenden Tabelle verwenden.
Menüelementart-Eigenschaft | BESCHREIBUNG |
---|---|
DynamicHoverStyle | Die Formatvorlageneinstellungen für ein dynamisches Menüelement, wenn der Mauszeiger darüber positioniert wird. |
DynamicMenuItemStyle | Die Formatvorlageneinstellungen für ein einzelnes dynamisches Menüelement. |
DynamicMenuStyle | Die Formatvorlageneinstellungen für ein dynamisches Menü. |
DynamicSelectedStyle | Die Formatvorlageneinstellungen für das aktuell ausgewählte dynamische Menüelement. |
StaticHoverStyle | Die Formatvorlageneinstellungen für ein statisches Menüelement, wenn der Mauszeiger darüber positioniert wird. |
StaticMenuItemStyle | Die Formatvorlageneinstellungen für ein einzelnes statisches Menüelement. |
StaticMenuStyle | Die Formatvorlageneinstellungen für ein statisches Menü. |
StaticSelectedStyle | Die Formatvorlageneinstellungen für das aktuell ausgewählte statische Menüelement. |
Anstatt die einzelnen Formatvorlageneigenschaften festzulegen, können Sie Formatvorlagen angeben, die auf Menüelementen basierend auf ihrer Ebene angewendet werden, indem Sie die in der folgenden Tabelle gezeigten Formatvorlagensammlungen verwenden.
Formatvorlagensammlungen auf Ebene | BESCHREIBUNG |
---|---|
LevelMenuItemStyles | Eine Auflistung von MenuItemStyle Objekten, die die Formatvorlage der Menüelemente basierend auf ihrer Ebene steuern. |
LevelSelectedStyles | Eine Auflistung von Objekten, die die Formatvorlage ausgewählter MenuItemStyle Menüelemente basierend auf ihrer Ebene steuern. |
LevelSubMenuStyles | Eine Auflistung von MenuItemStyle Objekten, die die Formatvorlage der Untermenüelemente basierend auf ihrer Ebene steuern. |
Die erste Formatvorlage in der Auflistung entspricht der Formatvorlage der Menüelemente auf der ersten Tiefenebene in der Menüstruktur. Die zweite Formatvorlage in der Auflistung entspricht der Formatvorlage der Menüelemente auf der zweiten Tiefenebene in der Menüstruktur usw. Dies wird am häufigsten verwendet, um ein Inhaltsverzeichnis mit Navigationsmenüs im Inhaltsstil zu generieren, in dem Menüelemente in einer bestimmten Tiefe dasselbe Aussehen haben sollten, unabhängig davon, ob sie Untermenüs haben.
Hinweis
Wenn Sie eine der in der vorherigen Tabelle aufgeführten Ebenenformatsammlungen verwenden, um die Formatvorlage für das Menu Steuerelement zu definieren, überschreiben diese Formatvorlageneinstellungen die eigenschaften der einzelnen Menüelemente.
Zusätzlich zum Anpassen der Formatvorlage eines Menüelements können Sie auch die Darstellung anpassen. Sie können benutzerdefinierte Bilder für die verschiedenen Teile für ein Menüelement angeben, indem Sie die Eigenschaften in der folgenden Tabelle festlegen.
Image-Eigenschaft | BESCHREIBUNG |
---|---|
ImageUrl | Ein optionales Bild neben dem Text eines Menüelements. |
PopOutImageUrl | Ein optionales Bild, das in einem Menüelement angezeigt wird, um anzugeben, dass das Menüelement über ein dynamisches Untermenü verfügt. |
SeparatorImageUrl | Ein optionales Bild, das unten in einem Menüelement angezeigt wird, um es von anderen Menüelementen zu trennen. |
Verwenden Sie die Selected Eigenschaft, um zu ermitteln, ob ein Menüelement derzeit in einem Menu Steuerelement ausgewählt ist. Sie können auch bestimmen, ob ein Menüelement mithilfe der DataBound Eigenschaft an Daten gebunden ist. Wenn ein Menüelement an Daten gebunden ist, können Sie mithilfe der DataItem Eigenschaft auf die Werte des Datenelements zugreifen, das an das Menüelement gebunden ist.
Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz der MenuItem-Klasse finden Sie im MenuItem-Konstruktor.
Konstruktoren
MenuItem() |
Initialisiert eine neue Instanz der MenuItem-Klasse ohne einen Menütext oder einen Wert. |
MenuItem(String) |
Initialisiert mithilfe des angegebenen Menütexts eine neue Instanz der MenuItem-Klasse. |
MenuItem(String, String) |
Initialisiert mithilfe des angegebenen Menütexts und des angegebenen Werts eine neue Instanz der MenuItem-Klasse. |
MenuItem(String, String, String) |
Initialisiert eine neue Instanz der MenuItem-Klasse unter Verwendung des angegebenen Menütexts, des Werts sowie der URL zu einem Bild. |
MenuItem(String, String, String, String) |
Initialisiert eine neue Instanz der MenuItem-Klasse unter Verwendung des angegebenen Menütexts, des Werts sowie der URL zu einem Bild und der URL für die Navigation. |
MenuItem(String, String, String, String, String) |
Initialisiert eine neue Instanz der MenuItem-Klasse unter Verwendung des angegebenen Menütexts, des Werts, der URL zu einem Bild, der URL für die Navigation sowie eines Ziels. |
Eigenschaften
ChildItems |
Ruft ein MenuItemCollection-Objekt ab, das die Untermenüelemente des aktuellen Menüelements enthält. |
DataBound |
Ruft einen Wert ab, der angibt, ob das Menüelement durch Datenbindung erstellt wurde. |
DataItem |
Ruft das Datenelement ab, das an das Menüelement gebunden ist. |
DataPath |
Ruft den Pfad zu den Daten ab, die an das Menüelement gebunden sind. |
Depth |
Ruft die Ebene ab, auf der ein Menüelement angezeigt wird. |
Enabled |
Ruft einen Wert ab, der angibt, ob das MenuItem-Objekt aktiviert ist, sodass das Element ein Popoutbild sowie vorhandene untergeordnete Menüelemente anzeigen kann, oder legt diesen Wert fest. |
ImageUrl |
Ruft die URL zu einem Bild ab, das neben dem Text im Menüelement angezeigt wird, oder legt diese URL fest. |
NavigateUrl |
Ruft die URL ab, zu der beim Klicken auf das Menüelement navigiert werden soll, oder legt diese fest. |
Parent |
Ruft das übergeordnete Menüelement des aktuellen Menüelements ab. |
PopOutImageUrl |
Ruft die URL zu einem Bild ab oder legt eine URL zu einem Bild fest, das in einem Menüelement angezeigt wird und angibt, dass dieses Menüelement über ein dynamisches Untermenü verfügt. |
Selectable |
Ruft einen Wert ab, der angibt, ob das MenuItem-Objekt ausgewählt werden kann oder ob darauf geklickt werden kann, oder legt diesen Wert fest. |
Selected |
Ruft einen Wert ab, der angibt, ob das aktuelle Menüelement in einem Menu-Steuerelement ausgewählt ist, oder legt diesen Wert fest. |
SeparatorImageUrl |
Ruft eine URL zu einem Bild ab oder legt die URL zu einem Bild fest, das am unteren Rand eines Menüelements angezeigt werden soll, um das Menüelement von anderen Menüelementen abzugrenzen. |
Target |
Ruft das Zielfenster oder den Zielframe ab, in dem die einem Menüeelement zugeordneten Webseiteninhalte angezeigt werden sollen, oder legt dieses Zielfenster bzw. den Zielframe fest. |
Text |
Ruft den Text ab oder legt den Text fest, der in einem Menu-Steuerelement für das Menüelement angezeigt wird. |
ToolTip |
Ruft den QuickInfo-Text für das Menüelement ab oder legt diesen fest. |
Value |
Ruft einen nicht angezeigten Wert ab, mit dem zusätzliche Daten zum Menüelement gespeichert werden (z. B. Daten zum Behandeln eines Postbackereignisses), oder legt diesen Wert fest. |
ValuePath |
Ruft den Pfad vom Stammmenüelement zum aktuellen Menüelement ab. |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
ICloneable.Clone() |
Erstellt eine Kopie des aktuellen MenuItem-Objekts. |
IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob das MenuItem-Objekt Änderungen des Ansichtszustands speichert. |
IStateManager.LoadViewState(Object) |
Lädt den zuvor gespeicherten Ansichtszustand des Menüelements. |
IStateManager.SaveViewState() |
Speichert die Änderungen am Ansichtszustand für ein Object. |
IStateManager.TrackViewState() |
Weist das MenuItem-Objekt an, Änderungen am Ansichtszustand nachzuverfolgen. |