MenuItem Třída

Definice

Představuje položku nabídky zobrazenou v ovládacím Menu prvku. Tuto třídu nelze zdědit.

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
Dědičnost
MenuItem
Implementuje

Příklady

Následující příklad ukazuje, jak naplnit Menu ovládací prvek statickými MenuItem objekty pomocí deklarativní syntaxe.


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

Následující příklad ukazuje, jak vytvořit vazbu Menu ovládacího prvku na SiteMapDataSource ovládací prvek. Při vazbě ke zdroji Menu dat ovládací prvek automaticky vytvoří MenuItem objekty. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data mapy webu níže do souboru s názvem 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>

Následuje ukázka dat mapy webu pro předchozí příklad.

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

Poznámky

Ovládací Menu prvek se skládá z hierarchie položek nabídky reprezentovaných MenuItem objekty. Každá položka nabídky má vlastnost jen Depth pro čtení, která určuje úroveň, na které se položka nabídky zobrazí v ovládacím Menu prvku. Položky nabídky na nejvyšší úrovni (úroveň 0), které nemají nadřazenou položku nabídky, se nazývají položky kořenové nabídky. Položka nabídky s nadřazenou položkou nabídky se nazývá podnabídka. Všechny položky kořenové nabídky jsou uloženy v kolekci Items . Podnabídky jsou uloženy v kolekci položek nadřazené nabídky ChildItems . K nadřazené položce nabídky můžete získat přístup pomocí Parent vlastnosti.

Poznámka

ChildItems Kolekce Items obsahují pouze položky nabídky pro další úroveň dolů. Pokud chcete získat přístup k položkám nabídky dál ve stromu nabídek, použijte ChildItems vlastnost následující položky nabídky.

Chcete-li vytvořit položky nabídky pro Menu ovládací prvek, použijte jednu z následujících metod:

K vytvoření položek statické nabídky použijte deklarativní syntaxi.

Pomocí konstruktoru můžete dynamicky vytvářet nové instance MenuItem třídy. Tyto MenuItem objekty je pak možné přidat do Items kolekce nebo ChildItems do kolekce.

Menu Vytvořte vazbu ovládacího prvku na zdroj dat. Menu Pokud je ovládací prvek vázán na SiteMapDataSource ovládací prvek, MenuItem objekty se automaticky vytvoří, které odpovídají položkám ve zdroji dat. U jiných zdrojů MenuItem dat se také automaticky vytvoří objekty, které odpovídají hierarchii struktury zdroje dat. Kolekci ale musíte také použít DataBindings k definování vazeb položek nabídky, které určují relaci vazby mezi položkou nabídky a odpovídající datovou položkou.

Položky nabídky se zobrazují buď ve statické nabídce, nebo v dynamické nabídce v závislosti na její úrovni. Statická nabídka se vždy zobrazí v ovládacím Menu prvku. Ve výchozím nastavení se položky nabídky na nejvyšší úrovni (úroveň 0) zobrazují v statické nabídce. V rámci statické nabídky můžete zobrazit další úrovně nabídek (statické podnabídky) nastavením StaticDisplayLevels vlastnosti. Položky nabídky (pokud existují) s vyšší úrovní, než je hodnota zadaná StaticDisplayLevels vlastností, se zobrazí v dynamické podnabídce. Dynamická podnabídka se zobrazí pouze v případech, kdy uživatel umístí ukazatel myši na položku nadřazené nabídky, která obsahuje dynamickou podnabídku.

Když uživatel klikne na položku nabídky, Menu může ovládací prvek buď přejít na propojenou webovou stránku, nebo jednoduše publikovat zpět na server. NavigateUrl Pokud je vlastnost položky nabídky nastavena, Menu ovládací prvek přejde na propojenou stránku; jinak publikuje stránku zpět na server pro zpracování. Ve výchozím nastavení se propojená stránka zobrazí ve stejném okně nebo rámečku Menu jako ovládací prvek. Chcete-li zobrazit propojený obsah v jiném okně nebo rámečku, použijte Target vlastnost Menu ovládacího prvku.

Poznámka

Vlastnost Menu.Target ovlivňuje každou položku nabídky v ovládacím prvku. Chcete-li zadat okno nebo rámec pro jednotlivé položky nabídky, nastavte Target vlastnost MenuItem objektu přímo.

Každá položka nabídky má Text vlastnost a Value vlastnost. Hodnota vlastnosti se zobrazí v Menu ovládacím Text prvku, zatímco Value vlastnost se používá k uložení jakýchkoli dalších dat o položce nabídky, jako jsou data předaná události postback přidružené k položce nabídky. Pokud vlastnost Text nastavíte, ale vlastnost ponecháte Value bez nastavení, Value vlastnost se automaticky nastaví se stejnou hodnotou jako Text vlastnost. Opačně to platí také. Pokud vlastnost Value nastavíte, ale ne Text vlastnost, Text vlastnost se automaticky nastaví se stejnou hodnotou jako Value vlastnost.

Poznámka

Položky nabídky na stejné úrovni nabídky musí mít pro vlastnost jedinečnou hodnotu Value . Menu Ovládací prvek nemůže rozlišovat mezi různými položkami nabídky na stejné úrovni, které mají stejnou hodnotu. V tomto scénáři, pokud uživatel klikne na položku nabídky, která má duplicitní hodnotu, položka nabídky, která se zobrazí jako první v nabídce, je vybrána.

Pokud chcete zobrazit popis, když uživatel umístí ukazatel myši na položku nabídky, nastavte vlastnost položky ToolTip .

Ovládací Menu prvek má několik různých typů položek nabídky. Styl (například velikost písma a barva) pro různé typy položek nabídky můžete řídit pomocí vlastností v následující tabulce.

Vlastnost stylu položky nabídky Description
DynamicHoverStyle Nastavení stylu pro položku dynamické nabídky, když je ukazatel myši umístěn nad ní.
DynamicMenuItemStyle Nastavení stylu pro jednotlivé položky dynamické nabídky
DynamicMenuStyle Nastavení stylu dynamické nabídky
DynamicSelectedStyle Nastavení stylu pro aktuálně vybranou položku dynamické nabídky.
StaticHoverStyle Nastavení stylu pro statickou položku nabídky, když je ukazatel myši umístěn nad ní.
StaticMenuItemStyle Nastavení stylu pro jednotlivé položky statické nabídky
StaticMenuStyle Nastavení stylu statické nabídky
StaticSelectedStyle Nastavení stylu aktuálně vybrané položky statické nabídky.

Místo nastavení jednotlivých vlastností stylu můžete určit styly, které se použijí pro položky nabídky na základě jejich úrovně, pomocí kolekcí stylů zobrazených v následující tabulce.

Kolekce stylů na úrovni Description
LevelMenuItemStyles Kolekce MenuItemStyle objektů, které řídí styl položek nabídky na základě jejich úrovně.
LevelSelectedStyles Kolekce MenuItemStyle objektů, které řídí styl vybraných položek nabídky na základě jejich úrovně.
LevelSubMenuStyles Kolekce MenuItemStyle objektů, které řídí styl podnabídek na základě jejich úrovně.

První styl v kolekci odpovídá stylu položek nabídky na první úrovni hloubky ve stromu nabídek. Druhý styl v kolekci odpovídá stylu položek nabídky na druhé úrovni hloubky ve stromu nabídek atd. Nejčastěji se používá k vygenerování nabídek navigace ve stylu obsahu, kde položky nabídky v určité hloubce by měly mít stejný vzhled bez ohledu na to, jestli mají podnabídky.

Poznámka

Pokud k definování stylu Menu ovládacího prvku použijete některou z kolekcí stylů na úrovni uvedené v předchozí tabulce, tato nastavení stylu přepíší vlastnosti stylu jednotlivých položek nabídky.

Kromě přizpůsobení stylu položky nabídky můžete také přizpůsobit jeho vzhled. Vlastní obrázky pro různé části položky nabídky můžete zadat nastavením vlastností v následující tabulce.

Vlastnost image Description
ImageUrl Volitelný obrázek zobrazený vedle textu položky nabídky.
PopOutImageUrl Volitelný obrázek zobrazený v položce nabídky, který označuje, že položka nabídky má dynamickou podnabídku.
SeparatorImageUrl Volitelný obrázek zobrazený v dolní části položky nabídky, který ho oddělí od ostatních položek nabídky.

Chcete-li určit, zda je položka nabídky aktuálně vybrána v ovládacím Menu prvku, použijte Selected vlastnost. Pomocí vlastnosti můžete také určit, zda je položka nabídky vázána k datům DataBound . Pokud je položka nabídky vázána na data, můžete použít DataItem vlastnost pro přístup k hodnotám datové položky vázané na položku nabídky.

Seznam počátečních hodnot vlastností pro instanci MenuItem třídy naleznete v konstruktoru MenuItem .

Konstruktory

MenuItem()

Inicializuje novou instanci MenuItem třídy bez textu nabídky nebo hodnoty.

MenuItem(String)

Inicializuje novou instanci MenuItem třídy pomocí zadaného textu nabídky.

MenuItem(String, String)

Inicializuje novou instanci MenuItem třídy pomocí zadaného textu a hodnoty nabídky.

MenuItem(String, String, String)

Inicializuje novou instanci MenuItem třídy pomocí zadaného textu nabídky, hodnoty a adresy URL obrázku.

MenuItem(String, String, String, String)

Inicializuje novou instanci MenuItem třídy pomocí zadaného textu nabídky, hodnoty, adresy URL obrázku a navigační adresy URL.

MenuItem(String, String, String, String, String)

Inicializuje novou instanci MenuItem třídy pomocí zadaného textu nabídky, hodnoty, adresy URL obrázku, navigační adresy URL a cíle.

Vlastnosti

ChildItems

MenuItemCollection Získá objekt, který obsahuje podnabídky aktuální položky nabídky.

DataBound

Získá hodnotu určující, zda položka nabídky byla vytvořena prostřednictvím datové vazby.

DataItem

Získá datová položka, která je vázána na položku nabídky.

DataPath

Získá cestu k datům, která jsou vázána na položku nabídky.

Depth

Získá úroveň, na které se zobrazí položka nabídky.

Enabled

Získá nebo nastaví hodnotu, která označuje, zda MenuItem je objekt povolen, což umožňuje položce zobrazit místní obrázek a všechny podřízené položky nabídky.

ImageUrl

Získá nebo nastaví adresu URL na obrázek, který se zobrazí vedle textu v položce nabídky.

NavigateUrl

Získá nebo nastaví adresu URL pro přechod na po kliknutí na položku nabídky.

Parent

Získá nadřazenou položku nabídky aktuální položky nabídky.

PopOutImageUrl

Získá nebo nastaví adresu URL na obrázek, který se zobrazí v položce nabídky, aby indikoval, že položka nabídky má dynamickou podnabídku.

Selectable

Získá nebo nastaví hodnotu, která označuje, zda MenuItem lze objekt vybrat, nebo je "kliknutelný".

Selected

Získá nebo nastaví hodnotu určující, zda je aktuální položka nabídky vybrána v ovládacím Menu prvku.

SeparatorImageUrl

Získá nebo nastaví adresu URL na obrázek zobrazený v dolní části položky nabídky tak, aby se oddělil od ostatních položek nabídky.

Target

Získá nebo nastaví cílové okno nebo rámec, ve kterém se má zobrazit obsah webové stránky asociované s položkou nabídky.

Text

Získá nebo nastaví text zobrazený pro položku nabídky v ovládacím Menu prvku.

ToolTip

Získá nebo nastaví text popisu pro položku nabídky.

Value

Získá nebo nastaví nezobrazovat hodnotu použitou k uložení jakýchkoli dalších dat o položce nabídky, jako jsou data používaná pro zpracování událostí postback.

ValuePath

Získá cestu z položky kořenové nabídky k aktuální položce nabídky.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

ICloneable.Clone()

Vytvoří kopii aktuálního MenuItem objektu.

IStateManager.IsTrackingViewState

Získá hodnotu, která označuje, zda MenuItem objekt ukládá změny do stavu zobrazení.

IStateManager.LoadViewState(Object)

Načte dříve uložený stav zobrazení položky nabídky.

IStateManager.SaveViewState()

Uloží změny stavu zobrazení do souboru Object.

IStateManager.TrackViewState()

Dává objektu MenuItem pokyn ke sledování změn ve stavu zobrazení.

Platí pro

Viz také