MenuItem Klass

Definition

Representerar ett menyalternativ som visas i Menu kontrollen. Det går inte att ärva den här klassen.

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
Arv
MenuItem
Implementeringar

Exempel

I följande exempel visas hur du fyller i en Menu kontroll med statiska MenuItem objekt med deklarativ syntax.


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

I följande exempel visas hur du binder en Menu kontroll till en SiteMapDataSource kontroll. När kontrollen är bunden till en datakälla skapar den Menu automatiskt objekten MenuItem . För att det här exemplet ska fungera korrekt måste du kopiera exempelwebbplatsens mappningsdata nedan till en fil med namnet 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>

Följande är exempel på webbplatsöversiktsdata för föregående exempel.

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

Kommentarer

En Menu kontroll består av en hierarki med menyobjekt som representeras av MenuItem objekt. Varje menyalternativ har en skrivskyddad Depth egenskap som anger på vilken nivå menyalternativet visas i Menu kontrollen. Menyalternativ på den översta nivån (nivå 0) som inte har ett överordnat menyalternativ kallas rotmenyobjekt. Ett menyalternativ som har ett överordnat menyalternativ kallas för ett undermenyobjekt. Alla rotmenyobjekt lagras i Items samlingen. Undermenyobjekt lagras i samlingarna för ett överordnat menyobjekt ChildItems . Du kan komma åt ett menyalternativs överordnade menyalternativ med hjälp Parent av egenskapen .

Note

Samlingarna Items och ChildItems innehåller endast menyalternativen för nästa nivå nedåt. Om du vill komma åt menyalternativ längre ned i menyträdet ChildItems använder du egenskapen för ett efterföljande menyalternativ.

Om du vill skapa menyalternativen för en Menu kontroll använder du någon av följande metoder:

Använd deklarativ syntax för att skapa statiska menyobjekt.

Använd en konstruktor för att dynamiskt skapa nya instanser av MenuItem klassen. Dessa MenuItem objekt kan sedan läggas till i Items samlingen eller ChildItems .

Binda kontrollen Menu till en datakälla. Menu När kontrollen är bunden till en SiteMapDataSource kontroll MenuItem skapas objekt automatiskt som motsvarar objekten i datakällan. För andra datakällor MenuItem skapas även objekt automatiskt som matchar hierarkistrukturen för datakällan. Du måste dock också använda DataBindings samlingen för att definiera de menyobjektbindningar som anger bindningsrelationen mellan ett menyobjekt och dess motsvarande dataobjekt.

Menyalternativen visas i antingen en statisk meny eller en dynamisk meny, beroende på dess nivå. Den statiska menyn visas alltid i en Menu kontroll. Som standard visas menyalternativen på den översta nivån (nivå 0) i den statiska menyn. Du kan visa ytterligare menynivåer (statiska undermenyer) i den statiska menyn genom att ange egenskapen StaticDisplayLevels . Menyobjekt (om några) med en högre nivå än det värde som anges av StaticDisplayLevels egenskapen visas i en dynamisk undermeny. En dynamisk undermeny visas bara när användaren placerar muspekaren över det överordnade menyalternativet som innehåller en dynamisk undermeny.

När användaren klickar på ett menyalternativ Menu kan kontrollen antingen navigera till en länkad webbsida eller helt enkelt publicera tillbaka till servern. NavigateUrl Om egenskapen för ett menyalternativ har angetts Menu navigerar kontrollen till den länkade sidan. Annars skickas sidan tillbaka till servern för bearbetning. Som standard visas en länkad sida i samma fönster eller ram som Menu kontrollen. Om du vill visa det länkade innehållet i ett annat fönster eller en annan ram använder du Target kontrollens Menu egenskap.

Note

Egenskapen Menu.Target påverkar alla menyalternativ i kontrollen. Om du vill ange ett fönster eller en ram för ett enskilt menyalternativ anger du Target objektets MenuItem egenskap direkt.

Varje menyalternativ har en Text och en Value egenskap. Värdet för Text egenskapen visas i Menu kontrollen, medan Value egenskapen används för att lagra ytterligare data om menyalternativet, till exempel data som skickas till den postback-händelse som är associerad med menyalternativet. Om du anger Text egenskapen, men lämnar Value egenskapen oetig, Value anges egenskapen automatiskt med samma värde som egenskapen Text . Motsatsen är också sant. Om du anger Value egenskapen, men inte Text egenskapen, Text anges egenskapen automatiskt med samma värde som egenskapen Value .

Note

Menyobjekt på samma menynivå måste ha ett unikt värde för Value egenskapen. Menu Kontrollen kan inte skilja mellan olika menyobjekt på samma nivå som har samma värde. Om användaren i det här scenariot klickar på ett menyalternativ som har ett duplicerat värde väljs menyalternativet som visas först på menyn.

Om du vill visa en knappbeskrivning när användaren placerar muspekaren över ett menyalternativ anger du objektets ToolTip egenskap.

En Menu kontroll har flera olika typer av menyalternativ. Du kan styra formatmallen (till exempel teckenstorlek och färg) för de olika menyalternativtyperna med hjälp av egenskaperna i följande tabell.

Egenskap för menyalternativsformat Description
DynamicHoverStyle Formatinställningarna för ett dynamiskt menyalternativ när muspekaren placeras över det.
DynamicMenuItemStyle Formatinställningarna för ett enskilt dynamiskt menyalternativ.
DynamicMenuStyle Formatinställningarna för en dynamisk meny.
DynamicSelectedStyle Formatinställningarna för det markerade dynamiska menyalternativet.
StaticHoverStyle Formatinställningarna för ett statiskt menyalternativ när muspekaren placeras över den.
StaticMenuItemStyle Formatinställningarna för ett enskilt statiskt menyalternativ.
StaticMenuStyle Formatinställningarna för en statisk meny.
StaticSelectedStyle Formatinställningarna för det markerade statiska menyalternativet.

I stället för att ange egenskaperna för enskilda format kan du ange formatmallar som tillämpas på menyalternativ baserat på deras nivå med hjälp av formatsamlingarna som visas i följande tabell.

Nivåformatsamlingar Description
LevelMenuItemStyles En samling MenuItemStyle objekt som styr menyalternativens format baserat på deras nivå.
LevelSelectedStyles En samling MenuItemStyle objekt som styr formatmallen för valda menyalternativ baserat på deras nivå.
LevelSubMenuStyles En samling MenuItemStyle objekt som styr formatmallen för undermenyobjekten baserat på deras nivå.

Det första formatet i samlingen motsvarar menyalternativens format på den första djupnivån i menyträdet. Det andra formatet i samlingen motsvarar menyalternativens format på den andra djupnivån i menyträdet och så vidare. Detta används oftast för att generera en innehållsförteckning med navigeringsmenyer där menyalternativ på ett visst djup ska ha samma utseende, oavsett om de har undermenyer.

Note

Om du använder någon av de nivåformatsamlingar som anges i föregående tabell för att definiera formatet för kontrollen åsidosätter dessa formatinställningar egenskaperna för Menu enskilda menyalternativ.

Förutom att anpassa menyalternativets formatmall kan du även anpassa dess utseende. Du kan ange anpassade avbildningar för de olika delarna för ett menyalternativ genom att ange egenskaperna i följande tabell.

Bildegenskap Description
ImageUrl En valfri bild som visas bredvid texten i ett menyalternativ.
PopOutImageUrl En valfri bild som visas i ett menyalternativ som anger att menyalternativet har en dynamisk undermeny.
SeparatorImageUrl En valfri bild som visas längst ned i ett menyalternativ för att skilja den från andra menyalternativ.

Om du vill ta reda på om ett menyalternativ är markerat i en Menu kontroll använder du Selected egenskapen . Du kan också avgöra om ett menyalternativ är bundet till data med hjälp DataBound av egenskapen . Om ett menyalternativ är bundet till data kan du använda DataItem egenskapen för att komma åt värdena för det dataobjekt som är bundet till menyalternativet.

En lista över initiala egenskapsvärden för en instans av MenuItem klassen finns i MenuItem konstruktorn.

Konstruktorer

Name Description
MenuItem()

Initierar en ny instans av MenuItem klassen utan menytext eller ett värde.

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

Initierar en ny instans av MenuItem klassen med den angivna menytexten, värdet, bildens URL, navigerings-URL och mål.

MenuItem(String, String, String, String)

Initierar en ny instans av MenuItem klassen med den angivna menytexten, värdet, bild-URL:en och navigerings-URL:en.

MenuItem(String, String, String)

Initierar en ny instans av MenuItem klassen med den angivna menytexten, värdet och URL:en till en bild.

MenuItem(String, String)

Initierar en ny instans av MenuItem klassen med den angivna menytexten och värdet.

MenuItem(String)

Initierar en ny instans av MenuItem klassen med den angivna menytexten.

Egenskaper

Name Description
ChildItems

Hämtar ett MenuItemCollection objekt som innehåller undermenyobjekten i det aktuella menyalternativet.

DataBound

Hämtar ett värde som anger om menyalternativet skapades via databindning.

DataItem

Hämtar det dataobjekt som är bundet till menyalternativet.

DataPath

Hämtar sökvägen till de data som är bundna till menyalternativet.

Depth

Hämtar den nivå där ett menyalternativ visas.

Enabled

Hämtar eller anger ett värde som anger om MenuItem objektet är aktiverat, så att objektet kan visa en popup-bild och eventuella underordnade menyalternativ.

ImageUrl

Hämtar eller anger URL:en till en bild som visas bredvid texten i ett menyalternativ.

NavigateUrl

Hämtar eller anger url:en som ska navigeras till när menyalternativet klickas.

Parent

Hämtar det överordnade menyalternativet för det aktuella menyalternativet.

PopOutImageUrl

Hämtar eller anger URL:en till en bild som visas i ett menyalternativ för att indikera att menyalternativet har en dynamisk undermeny.

Selectable

Hämtar eller anger ett värde som anger om objektet MenuItem kan väljas eller är "klickbart".

Selected

Hämtar eller anger ett värde som anger om det aktuella menyalternativet är markerat i en Menu kontroll.

SeparatorImageUrl

Hämtar eller anger URL:en till en bild som visas längst ned i ett menyalternativ för att skilja den från andra menyalternativ.

Target

Hämtar eller anger målfönstret eller ramen där webbsidans innehåll som är associerat med ett menyalternativ ska visas.

Text

Hämtar eller anger texten som visas för menyalternativet i en Menu kontroll.

ToolTip

Hämtar eller anger knappbeskrivningstexten för menyalternativet.

Value

Hämtar eller anger ett värde som inte visas och som används för att lagra ytterligare data om menyalternativet, till exempel data som används för hantering av postback-händelser.

ValuePath

Hämtar sökvägen från rotmenyobjektet till det aktuella menyalternativet.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
ICloneable.Clone()

Skapar en kopia av det aktuella MenuItem objektet.

IStateManager.IsTrackingViewState

Hämtar ett värde som anger om MenuItem objektet sparar ändringar i visningstillståndet.

IStateManager.LoadViewState(Object)

Läser in menyalternativets tidigare sparade vytillstånd.

IStateManager.SaveViewState()

Sparar ändringarna i visningstillståndet i en Object.

IStateManager.TrackViewState()

Instruerar objektet MenuItem att spåra ändringar i dess visningstillstånd.

Gäller för

Se även