MenuItem Klasa

Definicja

Reprezentuje element menu wyświetlany w kontrolce Menu . Klasa ta nie może być dziedziczona.

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
Dziedziczenie
MenuItem
Implementuje

Przykłady

W poniższym przykładzie pokazano, jak wypełnić kontrolkę Menu obiektami statycznymi MenuItem przy użyciu składni deklaratywnej.


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

W poniższym przykładzie pokazano, jak powiązać kontrolkę Menu z kontrolką SiteMapDataSource . Po powiązaniu ze źródłem danych kontrolka Menu automatycznie tworzy MenuItem obiekty. Aby ten przykład działał poprawnie, należy skopiować przykładowe dane mapy witryny poniżej do pliku o nazwie 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>

Poniżej przedstawiono przykładowe dane mapy witryny dla poprzedniego przykładu.

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

Uwagi

Kontrolka Menu składa się z hierarchii elementów menu reprezentowanych przez MenuItem obiekty. Każdy element menu ma właściwość tylko Depth do odczytu, która określa poziom, na którym element menu jest wyświetlany w kontrolce Menu . Elementy menu na najwyższym poziomie (poziom 0), które nie mają elementu menu nadrzędnego, są nazywane elementami menu głównego. Element menu, który ma element menu nadrzędnego, jest nazywany elementem podmenu. Wszystkie elementy menu głównego są przechowywane w kolekcji Items . Elementy podrzędne są przechowywane w kolekcji elementu menu nadrzędnego ChildItems . Dostęp do elementu menu nadrzędnego elementu menu można uzyskać za pomocą Parent właściwości .

Uwaga

Kolekcje Items i ChildItems zawierają tylko elementy menu dla następnego poziomu w dół. Aby uzyskać dostęp do elementów menu w dalszej części drzewa menu, użyj ChildItems właściwości kolejnego elementu menu.

Aby utworzyć elementy menu dla kontrolki Menu , użyj jednej z następujących metod:

Użyj składni deklaratywnej, aby utworzyć statyczne elementy menu.

Użyj konstruktora, aby dynamicznie tworzyć nowe wystąpienia MenuItem klasy. Te MenuItem obiekty można następnie dodać do kolekcji Items lub ChildItems .

Powiąż kontrolkę Menu ze źródłem danych. Gdy kontrolka Menu jest powiązana z kontrolką SiteMapDataSource , MenuItem obiekty są tworzone automatycznie, które odpowiadają elementom w źródle danych. W przypadku innych źródeł MenuItem danych obiekty są również tworzone automatycznie, które pasują do struktury hierarchii źródła danych. Jednak należy również użyć DataBindings kolekcji do zdefiniowania powiązań elementów menu, które określają relację powiązania między elementem menu i odpowiadającym mu elementem danych.

Elementy menu są wyświetlane w menu statycznym lub dynamicznym, w zależności od poziomu. Menu statyczne jest zawsze wyświetlane w kontrolce Menu . Domyślnie elementy menu na najwyższym poziomie (poziom 0) są wyświetlane w menu statycznym. Możesz wyświetlić dodatkowe poziomy menu (statyczne podmenu) w menu statycznym, ustawiając StaticDisplayLevels właściwość . Elementy menu (jeśli istnieją) o wyższym poziomie niż wartość określona przez StaticDisplayLevels właściwość są wyświetlane w podmenu dynamicznym. Dynamiczny podmenu pojawia się tylko wtedy, gdy użytkownik umieszcza wskaźnik myszy nad elementem menu nadrzędnego, który zawiera dynamiczny podmenu.

Gdy użytkownik kliknie element menu, kontrolka Menu może przejść do połączonej strony sieci Web lub po prostu opublikować go z powrotem na serwerze. NavigateUrl Jeśli właściwość elementu menu jest ustawiona, Menu kontrolka przechodzi do połączonej strony. W przeciwnym razie publikuje stronę z powrotem na serwerze w celu przetworzenia. Domyślnie połączona strona jest wyświetlana w tym samym oknie lub ramce co kontrolka Menu . Aby wyświetlić połączoną zawartość w innym oknie lub ramce, użyj Target właściwości kontrolki Menu .

Uwaga

Właściwość Menu.Target ma wpływ na każdy element menu w kontrolce. Aby określić okno lub ramkę dla pojedynczego elementu menu, ustaw Target właściwość MenuItem obiektu bezpośrednio.

Każdy element menu ma Text właściwość i Value . Wartość Text właściwości jest wyświetlana w kontrolce Menu , podczas gdy Value właściwość jest używana do przechowywania wszelkich dodatkowych danych dotyczących elementu menu, takich jak dane przekazane do zdarzenia ogłaszania zwrotnego skojarzonego z elementem menu. Jeśli właściwość zostanie ustawiona Text , ale właściwość nie Value zostanie ustawiona, Value właściwość zostanie automatycznie ustawiona z taką samą wartością jak Text właściwość . Jest to również prawdziwe w odwrotnym przypadku. Jeśli ustawisz Value właściwość, ale nie Text właściwość, Text właściwość zostanie automatycznie ustawiona z taką samą wartością Value jak właściwość .

Uwaga

Elementy menu na tym samym poziomie menu muszą mieć unikatową wartość właściwości Value . Kontrolka Menu nie może odróżnić różnych elementów menu na tym samym poziomie, które mają tę samą wartość. W tym scenariuszu, jeśli użytkownik kliknie element menu, który ma zduplikowaną wartość, zostanie wybrany element menu, który zostanie wyświetlony jako pierwszy w menu.

Aby wyświetlić etykietkę narzędzia, gdy użytkownik umieszcza wskaźnik myszy nad elementem menu, ustaw właściwość elementu ToolTip .

Kontrolka Menu ma kilka różnych typów elementów menu. Styl (na przykład rozmiar czcionki i kolor) dla różnych typów elementów menu można kontrolować przy użyciu właściwości w poniższej tabeli.

Właściwość stylu elementu menu Opis
DynamicHoverStyle Ustawienia stylu dynamicznego elementu menu po ustawieniu wskaźnika myszy nad nim.
DynamicMenuItemStyle Ustawienia stylu dla pojedynczego dynamicznego elementu menu.
DynamicMenuStyle Ustawienia stylu menu dynamicznego.
DynamicSelectedStyle Ustawienia stylu dla aktualnie wybranego dynamicznego elementu menu.
StaticHoverStyle Ustawienia stylu statycznego elementu menu po ustawieniu wskaźnika myszy na nim.
StaticMenuItemStyle Ustawienia stylu dla pojedynczego statycznego elementu menu.
StaticMenuStyle Ustawienia stylu dla menu statycznego.
StaticSelectedStyle Ustawienia stylu dla aktualnie wybranego statycznego elementu menu.

Zamiast ustawiać poszczególne właściwości stylu, można określić style, które są stosowane do elementów menu na podstawie ich poziomu, korzystając z kolekcji stylów przedstawionych w poniższej tabeli.

Kolekcje stylów poziomów Opis
LevelMenuItemStyles Kolekcja MenuItemStyle obiektów kontrolujących styl elementów menu na podstawie ich poziomu.
LevelSelectedStyles Kolekcja MenuItemStyle obiektów kontrolujących styl wybranych elementów menu na podstawie ich poziomu.
LevelSubMenuStyles Kolekcja MenuItemStyle obiektów kontrolujących styl elementów podrzędnych na podstawie ich poziomu.

Pierwszy styl w kolekcji odpowiada stylowi elementów menu na pierwszym poziomie głębokości w drzewie menu. Drugi styl w kolekcji odpowiada stylowi elementów menu na drugim poziomie głębokości w drzewie menu itd. Jest to najczęściej używane do generowania menu nawigacji w stylu spisu treści, w których elementy menu w określonej głębokości powinny mieć taki sam wygląd, niezależnie od tego, czy mają podmenu.

Uwaga

Jeśli używasz dowolnej kolekcji stylów poziomu wymienionej w poprzedniej tabeli do zdefiniowania stylu kontrolki Menu , te ustawienia stylu zastępują poszczególne właściwości stylu elementu menu.

Oprócz dostosowywania stylu elementu menu można również dostosować jego wygląd. Obrazy niestandardowe dla różnych części elementu menu można określić, ustawiając właściwości w poniższej tabeli.

Właściwość obrazu Opis
ImageUrl Opcjonalny obraz wyświetlany obok tekstu elementu menu.
PopOutImageUrl Opcjonalny obraz wyświetlany w elemencie menu wskazujący, że element menu ma dynamiczny podmenu.
SeparatorImageUrl Opcjonalny obraz wyświetlany w dolnej części elementu menu, aby oddzielić go od innych elementów menu.

Aby określić, czy element menu jest aktualnie zaznaczony w kontrolce Menu , użyj Selected właściwości . Można również określić, czy element menu jest powiązany z danymi przy użyciu DataBound właściwości . Jeśli element menu jest powiązany z danymi, możesz użyć DataItem właściwości , aby uzyskać dostęp do wartości elementu danych powiązanego z elementem menu.

Aby uzyskać listę początkowych wartości właściwości dla wystąpienia MenuItem klasy, zobacz MenuItem konstruktor.

Konstruktory

MenuItem()

Inicjuje MenuItem nowe wystąpienie klasy bez tekstu menu lub wartości.

MenuItem(String)

Inicjuje MenuItem nowe wystąpienie klasy przy użyciu określonego tekstu menu.

MenuItem(String, String)

Inicjuje MenuItem nowe wystąpienie klasy przy użyciu określonego tekstu i wartości menu.

MenuItem(String, String, String)

Inicjuje nowe wystąpienie MenuItem klasy przy użyciu określonego tekstu menu, wartości i adresu URL obrazu.

MenuItem(String, String, String, String)

Inicjuje nowe wystąpienie klasy przy użyciu określonego MenuItem tekstu menu, wartości, adresu URL obrazu i adresu URL nawigacji.

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

Inicjuje MenuItem nowe wystąpienie klasy przy użyciu określonego tekstu menu, wartości, adresu URL obrazu, adresu URL nawigacji i elementu docelowego.

Właściwości

ChildItems

MenuItemCollection Pobiera obiekt zawierający elementy podrzędne bieżącego elementu menu.

DataBound

Pobiera wartość wskazującą, czy element menu został utworzony za pomocą powiązania danych.

DataItem

Pobiera element danych powiązany z elementem menu.

DataPath

Pobiera ścieżkę do danych powiązanych z elementem menu.

Depth

Pobiera poziom wyświetlania elementu menu.

Enabled

Pobiera lub ustawia wartość wskazującą, czy MenuItem obiekt jest włączony, co pozwala elementowi wyświetlić obraz podręczny i wszystkie elementy menu podrzędnego.

ImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany obok tekstu w elemencie menu.

NavigateUrl

Pobiera lub ustawia adres URL, aby przejść do momentu kliknięcia elementu menu.

Parent

Pobiera element menu nadrzędnego bieżącego elementu menu.

PopOutImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany w elemencie menu, aby wskazać, że element menu ma dynamiczny podmenu.

Selectable

Pobiera lub ustawia wartość wskazującą, czy MenuItem obiekt można wybrać, czy jest "możliwy do kliknięcia".

Selected

Pobiera lub ustawia wartość wskazującą, czy bieżący element menu jest zaznaczony w kontrolce Menu .

SeparatorImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany w dolnej części elementu menu, aby oddzielić go od innych elementów menu.

Target

Pobiera lub ustawia okno docelowe lub ramkę, w której ma być wyświetlana zawartość strony sieci Web skojarzona z elementem menu.

Text

Pobiera lub ustawia tekst wyświetlany dla elementu menu w kontrolce Menu .

ToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla elementu menu.

Value

Pobiera lub ustawia nie wyświetlaną wartość służącą do przechowywania dodatkowych danych dotyczących elementu menu, takich jak dane używane do obsługi zdarzeń zwrotnych.

ValuePath

Pobiera ścieżkę z elementu menu głównego do bieżącego elementu menu.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy kopię bieżącego MenuItem obiektu.

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy MenuItem obiekt zapisuje zmiany w stanie widoku.

IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku elementu menu.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w obiekcie Object.

IStateManager.TrackViewState()

Instruuje MenuItem obiekt w celu śledzenia zmian w stanie widoku.

Dotyczy

Zobacz też