Übersicht über das Menü-Steuerelement

Aktualisiert: November 2007

Mit dem Menu-Steuerelement von ASP.NET können Sie sowohl statisch als auch dynamisch angezeigte Menüs für ASP.NET-Webseiten entwickeln.

Dieses Thema enthält folgende Abschnitte:

  • Background

  • Codebeispiele

  • Klassenreferenz

Background

Das Menu-Steuerelement verfügt über zwei Anzeigemodi: statisch und dynamisch. Bei der statischen Anzeige ist das Menu-Steuerelement ständig vollständig erweitert. Die gesamte Struktur ist sichtbar, und der Benutzer kann auf eine beliebige Stelle klicken. In einem Menü mit dynamischer Anzeige sind nur die von Ihnen angegebenen Anteile statisch. Alle untergeordneten Menüelemente werden dagegen nur angezeigt, sobald der Benutzer den Mauszeiger über den übergeordneten Knoten bewegt.

Sie können den Inhalt des Menu-Steuerelements entweder direkt im Steuerelement konfigurieren oder den Inhalt angeben, indem Sie das Steuerelement an eine Datenquelle binden. Darstellung, Ausrichtung und Inhalt des Menu-Steuerelements von ASP.NET lassen sich ohne Code ändern. Neben den visuellen Eigenschaften, die vom Steuerelement verfügbar gemacht werden, unterstützt das Steuerelement auch ASP.NET-Steuerelementdesigns. Weitere Informationen über Designs finden Sie unter Übersicht über ASP.NET-Designs und ASP.NET-Skins.

Statisches Anzeigeverhalten

Sie können das statische Anzeigeverhalten steuern, indem Sie die StaticDisplayLevels-Eigenschaft des Menu-Steuerelements verwenden. Die StaticDisplayLevels-Eigenschaft gibt an, wie viele Ebenen ausgehend von der obersten Ebene des Menüs statisch angezeigt werden sollen. Wenn StaticDisplayLevels z. B. auf 3 festgelegt ist, dann werden die ersten drei Ebenen des Menüs erweitert und statisch angezeigt. Sie müssen die statische Anzeigeebene mindestens auf den Wert 1 festlegen. Beim Wert 0 oder einer negativen Zahl wird vom Steuerelement eine Ausnahme ausgelöst.

Dynamisches Anzeigeverhalten

Die MaximumDynamicDisplayLevels-Eigenschaft gibt an, wie viele Ebenen dynamisch angezeigter Menüknoten nach der statischen Anzeigeebene angezeigt werden. Wenn in einem Menü für die statischen Anzeigeebenen der Wert 3 und für die dynamischen Anzeigeebenen der Wert 2 festgelegt wurde, werden die ersten drei Ebenen des Menüs statisch angezeigt und die nächsten beiden Ebenen dynamisch.

Wenn MaximumDynamicDisplayLevels auf 0 festgelegt wurde, werden überhaupt keine Menüknoten dynamisch angezeigt. Wenn MaximumDynamicDisplayLevels auf eine negative Zahl festgelegt wird, wird eine Ausnahme ausgelöst.

Definieren des Menüinhalts

Sie können den Inhalt des Menu-Steuerelements auf zwei Arten definieren: indem Sie einzelne MenuItem-Objekte (deklarativ oder programmgesteuert) hinzufügen, oder indem Sie eine Datenbindung zwischen dem Steuerelement und einer XML-Datenquelle herstellen.

Manuelles Hinzufügen von Menüelementen

Sie können dem Steuerelement einzelne Menüelemente hinzufügen, indem Sie diese in der Items-Eigenschaft angeben. Die Items-Eigenschaft ist eine Auflistung von MenuItem-Objekten. Das folgende Beispiel zeigt das deklarative Markup für ein Menu-Steuerelement mit drei Elementen, von denen jedes zwei Unterelemente hat:

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

Binden von Daten an eine XML-Datenquelle

Durch das Binden an eine XML-Datei können Sie den Inhalt des Menüs über eine Datei bestimmen und müssen hierfür nicht den Designer verwenden. Auf diese Weise können Sie die Navigation der Site überarbeiten, ohne das Menu-Steuerelement oder den Code bearbeiten zu müssen. Wenn sich der Inhalt der Seite häufig ändert, können Sie mit einer XML-Datei den Inhalt organisieren und die Datei an das Menu-Steuerelement übergeben, damit die Benutzer der Website Zugriff auf den Inhalt haben.

Darstellung und Verhalten

Sie können das Verhalten des Menu-Steuerelements über seine Eigenschaften anpassen. Außerdem können Sie das Verhalten der dynamischen Anzeige steuern, einschließlich der Anzeigedauer für Menüknoten. Um beispielsweise die Ausrichtung von Menu von horizontal auf vertikal zu ändern, können Sie die Orientation-Eigenschaft folgendermaßen festlegen:

[Visual Basic]

Menu.Orientation = Orientation.Vertical

[C#]

Menu.Orientation = Orientation.Vertical;

Wenn Sie die Eigenschaft auf Orientation.Horizontal festlegen, ist die Ausrichtung wieder horizontal.

Sie können die einzelnen Eigenschaften des Menu-Steuerelements festlegen, um Größe, Farbe, Schriftart und andere Darstellungsmerkmale anzugeben. Außerdem können Sie Designs auf das Menu-Steuerelement anwenden.

Format

Jede Menüebene unterstützt Formateigenschaften. Wenn keine dynamischen Formateigenschaften festgelegt werden, werden die statischen Formateigenschaften verwendet. Wenn nur dynamische und keine statischen Formateigenschaften festgelegt werden, wird das Standardrendering der statischen Formateigenschaften verwendet. Die Formathierarchie des Menu-Steuerelements sieht folgendermaßen aus:

  1. Steuerelement

  2. SubMenuStyles

  3. MenuItemStyles

  4. SelectedItemStyles

  5. HoverMenuItemStyles

Die Formate werden mittels folgender Logik für dynamische und statische Menüs zusammengeführt:

  • Die einzelnen Formateigenschaften werden auf die entsprechende Aktion oder den entsprechenden Elementtyp angewendet.

  • Alle Formate werden mit dem hierarchisch unmittelbar übergeordneten Format zusammengeführt, wobei das letzte Format die anderen überschreibt.

    Hinweis:

    Statische Menüs werden nie zusammengeführt, und das dynamische Format wird nur angewendet, wenn kein statisches Format definiert ist.

Zeitliche Steuerung der dynamischen Darstellung

Ein weiterer Aspekt der dynamischen Darstellung ist die Anzeigedauer eines dynamischen Menüteils bis zu seinem Verschwinden. Dieser Wert lässt sich mittels der DisappearAfter-Eigenschaft millisekundengenau festlegen:

[Visual Basic]

Menu.DisappearAfter = 1000

[C#]

Menu.DisappearAfter = 1000;

Der Standardwert beträgt 500 Millisekunden. Wenn der Wert von DisappearAfter auf 0 festgelegt wird, verschwindet das Steuerelement sofort, sobald der Mauszeiger auf einen Bereich außerhalb des Menu-Steuerelements zeigt. Ein Wert von -1 bedeutet, dass die Dauer der Verzögerung unendlich ist. Erst durch ein Klicken außerhalb des Menu-Steuerelements verschwindet der dynamische Menüteil wieder.

Verwenden des Menü-Steuerelements mit UpdatePanel-Steuerelementen

UpdatePanel-Steuerelemente werden verwendet, um ausgewählte Teile der Seite zu aktualisieren, statt die gesamte Seite mit einem Postback zu aktualisieren. Das Menu-Steuerelement kann in einem UpdatePanel-Steuerelement mit der Einschränkung verwendet werden, dass Stile mithilfe eines Verweises auf eine CSS (Cascading Style Sheet)-Klasse zugewiesen werden müssen. Anstatt beispielsweise die DynamicHoverStyle-Eigenschaft mithilfe eines Eigenschaft-Untereigenschaft-Attributs festzulegen, legen Sie den Stil mithilfe des Eigenschaft-CssClass-Attributs fest. Wenn Sie die DynamicHoverStyle-Vorlage zum Festlegen eines Stils verwenden, verwenden Sie entsprechend das CssClass-Attribut der Vorlage.

Weitere Informationen zur Verwendung von UpdatePanel-Steuerelementen finden Sie unter Übersicht über das UpdatePanel-Steuerelement und Übersicht über das Teilrendering von Seiten.

Codebeispiele

Verwenden von CSS und Formatvorlagen mit dem Menüsteuerelement

Verwenden von Bildern mit dem Menüsteuerelement

Exemplarische Vorgehensweise: Anzeigen eines Menüs auf Webseiten

Exemplarische Vorgehensweise: Programmgesteuertes Kontrollieren von ASP.NET-Menüs

Zurück nach oben

Klassenreferenz

In der folgenden Tabelle sind die Klassen aufgelistet, die sich auf das Menu-Steuerelement beziehen.

Member

Beschreibung

Menu

Die Hauptklasse des Steuerelements.

MenuEventArgs

Stellt Daten für das MenuItemClick-Ereignis und das MenuItemDataBound-Ereignis eines Menu-Steuerelements bereit.

MenuEventHandler

Stellt die Methode dar, die das MenuItemClick-Ereignis oder das MenuItemDataBound-Ereignis eines Menu-Steuerelements behandelt.

MenuItem

Stellt ein im Menu-Steuerelement angezeigtes Menüelement dar.

MenuItemBinding

Definiert die Beziehung zwischen einem Datenelement und dem Menüelement, mit dem es in einem Menu-Steuerelement eine Bindung herstellt.

MenuItemBindingCollection

Stellt eine Auflistung von MenuItemBinding-Objekten dar.

MenuItemCollection

Stellt eine Auflistung von Menüelementen in einem Menu-Steuerelement dar.

MenuItemStyle

Stellt den Stil eines Menüelements in einem Menu-Steuerelement dar.

MenuItemStyleCollection

Stellt eine Auflistung von MenuItemStyle-Objekten in einem Menu-Steuerelement dar.

Zurück nach oben

Siehe auch

Konzepte

Übersicht über die ASP.NET-Sitenavigation

Referenz

Menu

Weitere Ressourcen

Navigations-Toolbox-Steuerelemente