Freigeben über


MenuItem Klasse

Definition

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.

Gilt für

Siehe auch