Sdílet prostřednictvím


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 níže uvedená ukázková data mapy webu do souboru s názvem Web.mapa webu.


<%@ 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é je položka nabídky zobrazena 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 . Položky podnabídky jsou uloženy v kolekci nadřazené položky ChildItems nabídky. K nadřazené položce nabídky můžete přistupovat pomocí Parent vlastnosti.

Poznámka:

Kolekce Items obsahují ChildItems pouze položky nabídky pro další úroveň dolů. Pokud chcete získat přístup k položkám nabídky dále ve stromu nabídek, použijte ChildItems vlastnost následné 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í statických položek 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 do ChildItems kolekce.

Menu Vytvořte vazbu ovládacího prvku na zdroj dat. Menu Když 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 jsou objekty také automaticky vytvořeny, které odpovídají hierarchii struktury zdroje dat. Kolekci však 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í ve statické nabídce. V statické nabídce můžete zobrazit další úrovně nabídek (statické podnabídky) nastavením StaticDisplayLevels vlastnosti. Položky nabídky (pokud jsou k dispozici) s vyšší úrovní, než je hodnota zadaná StaticDisplayLevels vlastností, se zobrazí v dynamické podnabídce. Dynamická podnabídka se zobrazí pouze tehdy, když uživatel umístí ukazatel myši na nadřazenou položku nabídky, která obsahuje dynamickou podnabídku.

Když uživatel klikne na položku nabídky, Menu může ovládací prvek 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ámci, použijte Target vlastnost Menu ovládacího prvku.

Poznámka:

Vlastnost Menu.Target ovlivňuje všechny položky 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á a TextValue vlastnost. Hodnota Text vlastnosti se zobrazí v ovládacím Menu prvku, zatímco Value vlastnost se používá k uložení dalších dat o položce nabídky, například data předaná události postback přidružené k položce nabídky. Pokud vlastnost Text nastavíte, ale ponecháte Value vlastnost bez nastavení, Value vlastnost se automaticky nastaví se stejnou hodnotou jako Text vlastnost. Opak je také pravdivý. Pokud nastavíte Value vlastnost, 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. Pokud v tomto scénáři 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.

Chcete-li 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 a barva písma) 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 jednotlivou statickou položku nabídky.
StaticMenuStyle Nastavení stylu statické nabídky
StaticSelectedStyle Nastavení stylu pro aktuálně vybranou statickou položku nabídky.

Místo nastavení jednotlivých vlastností stylu můžete určit styly použité u položek 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 položek 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á ke generování navigačních nabídek ve stylu obsahu, ve kterých by položky nabídek v určité hloubkě 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é položky nabídky.

Kromě přizpůsobení stylu položky nabídky můžete také přizpůsobit její 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, jestli je položka nabídky svázaná s daty DataBound . Pokud je položka nabídky svázaná s daty, 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

Name Description
MenuItem()

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

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.

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)

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

MenuItem(String, String)

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

MenuItem(String)

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

Vlastnosti

Name Description
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 svázána s položkou nabídky.

Depth

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

Enabled

Získá nebo nastaví hodnotu, která urč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ý je zobrazen v položce nabídky označující, ž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, 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 přidružené k položce 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, například data použitá 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

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven 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ří mělkou kopii aktuálního 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í

Name Description
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 jeho 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 objektu Object.

IStateManager.TrackViewState()

Dává objektu MenuItem pokyn, aby sledoval změny jeho stavu zobrazení.

Platí pro

Viz také