Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

MenuItem-Klasse

Hinweis: Diese Klasse ist neu in .NET Framework, Version 2.0.

Stellt ein im Menu-Steuerelement angezeigtes Menüelement dar. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

public sealed class MenuItem : IStateManager, ICloneable
public final class MenuItem implements IStateManager, ICloneable
public final class MenuItem implements IStateManager, ICloneable

Ein Menu-Steuerelement besteht aus einer Hierarchie von Menüelementen, die von MenuItem-Objekten 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 der obersten Ebene (Ebene 0) werden als Stammmenüelemente bezeichnet und besitzen kein übergeordnetes Menüelement. Ein Menüelement, das ein übergeordnetes Menüelement besitzt, wird als Untermenüelement bezeichnet. Alle Stammmenüelemente werden in der Items-Auflistung gespeichert. Untermenüelemente werden in der ChildItems-Auflistung eines übergeordneten Menüelements gespeichert. Sie können auf das übergeordnete Menüelement eines Menüelements zugreifen, indem Sie die Parent-Eigenschaft verwenden.

HinweisHinweis

Die Items-Auflistung und die ChildItems-Auflistung enthalten nur die Menüelemente für die nächste, darunter liegende Ebene. Greifen Sie mithilfe der ChildItems-Eigenschaft eines nachfolgenden Menüelements auf Menüelemente zu, die sich weiter unten in der Menüstruktur befinden.

Um die Menüelemente für ein Menu-Steuerelement zu erstellen, verwenden Sie eine der folgenden Methoden:

Verwenden Sie eine deklarative Syntax, um statische Menüelemente zu erstellen.

Verwenden Sie einen Konstruktor, um neue Instanzen der MenuItem-Klasse dynamisch zu erstellen. Diese MenuItem-Objekte können dann der Items-Auflistung oder der ChildItems-Auflistung hinzugefügt werden.

Binden Sie das Menu-Steuerelement an eine Datenquelle. Wenn das Menu-Steuerelement an ein SiteMapDataSource-Steuerelement gebunden ist, werden MenuItem-Objekte, die den Elementen in der Datenquelle entsprechen, automatisch erstellt. Auch bei anderen Datenquellen werden MenuItem-Objekte, die der hierarchischen Struktur der Datenquelle entsprechen, automatisch erstellt. Sie müssen jedoch auch die DataBindings-Auflistung verwenden, um die Menüelementbindungen zu definieren, mit denen die Bindungsbeziehung zwischen einem Menüelement und seinem entsprechenden Datenelement angegeben wird.

Die Menüelemente werden abhängig von der Ebene entweder in einem statischen Menü oder in einem dynamischen Menü angezeigt. Das statische Menü wird immer in einem Menu-Steuerelement angezeigt. Standardmäßig werden die Menüelemente der obersten Ebene (Ebene 0) im statischen Menü angezeigt. Sie können zusätzliche Menüebenen (statische Untermenüs) innerhalb des statischen Menüs anzeigen, indem Sie die StaticDisplayLevels-Eigenschaft festlegen. Menüelemente, die sich ggf. auf höherer Ebene als der von der StaticDisplayLevels-Eigenschaft angegebene Wert befinden, werden in einem dynamischen Untermenü angezeigt. Ein dynamisches Untermenü wird nur angezeigt, wenn der Benutzer den Mauszeiger auf dem übergeordneten Menüelement positioniert, das ein dynamisches Untermenü enthält.

Wenn der Benutzer auf ein Menüelement klickt, kann mit dem Menu-Steuerelement entweder zu einer verknüpften Webseite navigiert werden oder es erfolgt ein Postback an den Server. Wenn die NavigateUrl-Eigenschaft eines Menüelements festgelegt wurde, navigiert das Menu-Steuerelement zu der verknüpften Seite. Andernfalls sendet es die Seite zur Verarbeitung an den Server zurück. Standardmäßig wird eine verknüpfte Seite im gleichen Fenster oder Frame wie das Menu-Steuerelement angezeigt. Um die verknüpften Inhalte in einem anderen Fenster oder Frame anzuzeigen, verwenden Sie die Target-Eigenschaft des Menu-Steuerelements.

HinweisHinweis

Die Menu.Target-Eigenschaft hat Auswirkungen auf alle Menüelemente im Steuerelement. Um für ein einzelnes Menüelement ein Fenster oder einen Frame anzugeben, legen Sie die Target-Eigenschaft des MenuItem-Objekts direkt fest.

Jedes Menüelement verfügt über eine Text-Eigenschaft und eine Value-Eigenschaft. Der Wert der Text-Eigenschaft wird im Menu-Steuerelement angezeigt. Die Value-Eigenschaft wird hingegen verwendet, um zusätzliche Daten zum Menüelement zu speichern (z. B. Daten, die an das dem Menüelement zugeordnete Postbackereignis übergeben werden). Wenn Sie die Text-Eigenschaft festlegen, die Value-Eigenschaft aber nicht festlegen, wird die Value-Eigenschaft automatisch mit dem gleichen Wert wie die Text-Eigenschaft festgelegt. Umgekehrt gilt das gleiche. Wenn Sie die Value-Eigenschaft festlegen, die Text-Eigenschaft aber nicht festlegen, wird die Text-Eigenschaft automatisch mit dem gleichen Wert wie die Value-Eigenschaft festgelegt.

HinweisHinweis

Menüelemente auf derselben Menüebene müssen jeweils einen eindeutigen Wert für die Value-Eigenschaft aufweisen. Das Menu-Steuerelement kann nicht zwischen unterschiedlichen Menüelementen unterscheiden, die sich auf derselben Ebene befinden und denselben Wert aufweisen. Wenn in diesem Szenario ein Benutzer auf ein Menüelement klickt, das einen doppelten Wert besitzt, wird das im Menü zuerst angezeigte Menüelement ausgewählt.

Um eine QuickInfo anzuzeigen, wenn der Benutzer den Mauszeiger auf einem Menüelement positioniert, legen Sie die ToolTip-Eigenschaft des Elements fest.

Ein Menu-Steuerelement verfügt über mehrere unterschiedliche Menüelementtypen. Sie können das Format (z. B. Schriftgrad und Farbe) für die unterschiedlichen Menüelementtypen steuern, indem Sie die Eigenschaften aus der folgenden Tabelle verwenden.

Formateigenschaft des Menüelements

Beschreibung

DynamicHoverStyle

Die Formateinstellungen für ein dynamisches Menüelement, wenn der Mauszeiger darauf positioniert wird.

DynamicMenuItemStyle

Die Formateinstellungen für ein einzelnes dynamisches Menüelement.

DynamicMenuStyle

Die Formateinstellungen für ein dynamisches Menü.

DynamicSelectedStyle

Die Formateinstellungen für das derzeit ausgewählte dynamische Menüelement.

StaticHoverStyle

Die Formateinstellungen für ein statisches Menüelement, wenn der Mauszeiger darauf positioniert wird.

StaticMenuItemStyle

Die Formateinstellungen für ein einzelnes statisches Menüelement.

StaticMenuStyle

Die Formateinstellungen für ein statisches Menü.

StaticSelectedStyle

Die Formateinstellungen für das derzeit ausgewählte statische Menüelement.

Anstatt die einzelnen Formateigenschaften festzulegen, können Sie auch Formate angeben, die entsprechend der Ebene des Menüelements auf dieses angewendet werden. Verwenden Sie dazu die Formatauflistungen aus der folgenden Tabelle.

Ebenenformatauflistungen

Beschreibung

LevelMenuItemStyles

Eine Auflistung von MenuItemStyle-Objekten, die das Format der Menüelemente auf Grundlage ihrer Ebene steuern.

LevelSelectedStyles

Eine Auflistung von MenuItemStyle-Objekten, die das Format der ausgewählten Menüelemente auf Grundlage ihrer Ebene steuern.

LevelSubMenuStyles

Eine Auflistung von MenuItemStyle-Objekten, die das Format der Untermenüelemente auf Grundlage ihrer Ebene steuern.

Das erste Format in der Auflistung stimmt mit dem Format der Menüelemente auf der ersten untergeordneten Ebene in der Menüstruktur überein. Das zweite Format in der Auflistung stimmt mit dem Format der Menüelemente auf der zweiten untergeordneten Ebene in der Menüstruktur überein. Auf diese Weise werden sehr häufig Navigationsmenüs in Form eines Inhaltsverzeichnisses generiert. Dabei weisen die Menüelemente einer bestimmten Ebene jeweils die gleiche Darstellung auf, unabhängig davon, ob sie über Untermenüs verfügen.

HinweisHinweis

Wenn Sie eine der in der vorigen Tabelle aufgelisteten Formatauflistungen verwenden, um das Format für das Menu-Steuerelement zu definieren, überschreiben diese Formateinstellungen die individuellen Formateigenschaften des Menüelements.

Zusätzlich zum Format eines Menüelements können Sie auch seine Darstellung anpassen. Sie können benutzerdefinierte Bilder für die verschiedenen Teile eines Menüelements angeben, indem Sie die Eigenschaften in der folgenden Tabelle festlegen.

Bildeigenschaft

Beschreibung

ImageUrl

Ein optionales Bild, das neben dem Text eines Menüelements angezeigt wird.

PopOutImageUrl

Ein optionales Bild, das in einem Menüelement angezeigt wird und angibt, dass das Menüelement ein dynamisches Untermenü aufweist.

SeparatorImageUrl

Ein optionales Bild, das am unteren Rand eines Menüelements angezeigt wird, um dieses von anderen Menüelementen abzugrenzen.

Um zu bestimmen, ob ein Menüelement aktuell in einem Menu-Steuerelement ausgewählt ist, verwenden Sie die Selected-Eigenschaft. Mithilfe der DataBound-Eigenschaft können Sie auch bestimmen, ob ein Menüelement an Daten gebunden ist. Wenn ein Menüelement an Daten gebunden ist, können Sie unter Verwendung der DataItem-Eigenschaft auf die Werte des an das Menüelement gebundenen Datenelements zugreifen.

Eine Liste der anfänglichen Eigenschaftenwerte für eine Instanz der MenuItem-Klasse finden Sie im MenuItem-Konstruktor.

ThemaPosition
Exemplarische Vorgehensweise: Programmgesteuertes Kontrollieren von ASP.NET-MenüsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Anzeigen eines Menüs auf WebseitenErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Anzeigen eines Menüs auf WebseitenErstellen von Anwendungen mit Visual Web Developer
Exemplarische Vorgehensweise: Programmgesteuertes Kontrollieren von ASP.NET-MenüsErstellen von ASP.NET-Webanwendungen in Visual Studio
Exemplarische Vorgehensweise: Programmgesteuertes Kontrollieren von ASP.NET-MenüsErstellen von ASP.NET-Webanwendungen in Visual Studio

Im folgenden Codebeispiel wird veranschaulicht, wie ein Menu-Steuerelement unter Verwendung deklarativer Syntax mit statischen MenuItem-Objekten gefüllt wird.


<%@ Page Language="C#" %>

<html>
  <body>
    <form 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>


Im folgenden Codebeispiel wird veranschaulicht, wie ein Menu-Steuerelement an ein SiteMapDataSource-Steuerelement gebunden wird. Wenn es an eine Datenquelle gebunden ist, erstellt das Menu-Steuerelement automatisch MenuItem-Objekte. Damit dieses Beispiel wie vorgesehen funktioniert, müssen Sie die nachfolgenden Beispiel-Siteübersichtsdaten in eine Datei mit dem Namen Web.sitemap kopieren.


<%@ Page Language="C#" %>

<html>

  <!-- For the hover styles of the Menu control to  -->
  <!-- work correctly, you must include this head   -->
  <!-- element.                                     -->
  <head runat="server">
  </head>

  <body>
    <form 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>


Nachfolgend finden Sie ein Beispiel für die Siteübersichtsdaten für das vorherige Beispiel.

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

  • AspNetHostingPermission  für den Betrieb in einer Hostumgebung. Anforderungswert: LinkDemand; Berechtigungswert: Minimal.

System.Object
  System.Web.UI.WebControls.MenuItem

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0
Anzeigen: