MenuItem Sınıf

Tanım

Denetimde Menu görüntülenen menü öğesini temsil eder. Bu sınıf devralınamaz.

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
Devralma
MenuItem
Uygulamalar

Örnekler

Aşağıdaki örnek, bildirim temelli söz dizimi kullanarak bir Menu denetimin statik MenuItem nesnelerle nasıl doldurulduğunu gösterir.


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

Aşağıdaki örnekte bir denetimin bir Menu denetime nasıl bağlanacağınız SiteMapDataSource gösterilmektedir. Bir veri kaynağına bağlanıldığında, Menu denetim nesneleri otomatik olarak oluşturur MenuItem . Bu örneğin düzgün çalışması için aşağıdaki örnek site haritası verilerini Web.sitemap adlı bir dosyaya kopyalamanız gerekir.


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

Aşağıda, önceki örnekteki örnek site haritası verileri verilmiştir.

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

Açıklamalar

Denetim Menu , nesnelerle MenuItem temsil edilen menü öğelerinin hiyerarşilerinden oluşur. Her menü öğesi, denetimde menü öğesinin görüntülendiği Menu düzeyi belirten salt Depth okunur bir özelliğe sahiptir. Üst menü öğesi olmayan en üst düzeydeki (düzey 0) menü öğelerine kök menü öğeleri adı verilir. Üst menü öğesi olan bir menü öğesi, alt menü öğesi olarak adlandırılır. Tüm kök menü öğeleri koleksiyonda Items depolanır. Alt menü öğeleri bir üst menü öğesinin ChildItems koleksiyonunda depolanır. özelliğini kullanarak Parent bir menü öğesinin üst menü öğesine erişebilirsiniz.

Not

Items ve ChildItems koleksiyonları yalnızca bir sonraki düzeye ait menü öğelerini içerir. Menü ağacının daha aşağısındaki menü öğelerine erişmek için sonraki menü öğesinin özelliğini kullanın ChildItems .

Bir Menu denetimin menü öğelerini oluşturmak için aşağıdaki yöntemlerden birini kullanın:

Statik menü öğeleri oluşturmak için bildirim temelli söz dizimi kullanın.

Sınıfının yeni örneklerini MenuItem dinamik olarak oluşturmak için bir oluşturucu kullanın. Bu MenuItem nesneler daha sonra veya ChildItems koleksiyonuna Items eklenebilir.

Menu Denetimi bir veri kaynağına bağlayın. Menu Denetim bir SiteMapDataSource denetime bağlı olduğunda, MenuItem veri kaynağındaki öğelere karşılık gelen nesneler otomatik olarak oluşturulur. Diğer veri kaynakları için, MenuItem veri kaynağının hiyerarşi yapısıyla eşleşen nesneler de otomatik olarak oluşturulur; ancak, bir menü öğesi ile ilgili veri öğesi arasındaki bağlama ilişkisini belirten menü öğesi bağlamalarını tanımlamak için koleksiyonu da kullanmanız DataBindings gerekir.

Menü öğeleri, düzeyine bağlı olarak statik bir menüde veya dinamik menüde görüntülenir. Statik menü her zaman bir Menu denetimde görüntülenir. Varsayılan olarak, en üst düzeydeki menü öğeleri (düzey 0) statik menüde görüntülenir. Özelliğini ayarlayarak StaticDisplayLevels statik menü içinde ek menü düzeyleri (statik alt menüler) görüntüleyebilirsiniz. Özelliği tarafından StaticDisplayLevels belirtilen değerden daha yüksek bir düzeye sahip menü öğeleri (varsa) dinamik bir alt menüde görüntülenir. Dinamik alt menü yalnızca kullanıcı fare işaretçisini dinamik bir alt menü içeren üst menü öğesinin üzerine getirince görüntülenir.

Kullanıcı bir menü öğesine tıkladığında, Menu denetim bağlantılı bir Web sayfasına gidebilir veya yalnızca sunucuya geri gönderebilir. Menü öğesinin NavigateUrl özelliği ayarlanırsa, Menu denetim bağlantılı sayfaya gider; aksi takdirde sayfayı işlenmek üzere sunucuya geri gönderir. Varsayılan olarak, bağlı bir sayfa denetimle aynı pencerede veya çerçevede Menu görüntülenir. Bağlı içeriği farklı bir pencerede veya çerçevede görüntülemek için denetimin Target Menu özelliğini kullanın.

Not

özelliği denetimdeki Menu.Target her menü öğesini etkiler. Tek bir menü öğesi için bir pencere veya çerçeve belirtmek için nesnenin Target MenuItem özelliğini doğrudan ayarlayın.

Her menü öğesinin bir Text Value ve özelliği vardır. Özelliğin Text değeri denetimde Menu görüntülenirken Value , özellik menü öğesiyle ilişkili geri gönderme olayına geçirilen veriler gibi menü öğesiyle ilgili ek verileri depolamak için kullanılır. Özelliği ayarlar Text ancak özelliği ayarsız bırakırsanız Value , Value özellik özelliğiyle aynı değerle Text otomatik olarak ayarlanır. Bunun tersi de geçerlidir. Özelliğini ayarlar ancak özelliği ayarlamazsanız Value Text , Text özellik özelliğiyle aynı değerle Value otomatik olarak ayarlanır.

Not

Aynı menü düzeyindeki menü öğelerinin her biri özellik için benzersiz bir değere Value sahip olmalıdır; Menu denetim aynı değere sahip aynı düzeydeki farklı menü öğelerini ayırt edemez. Bu senaryoda, kullanıcı yinelenen değer içeren bir menü öğesine tıklarsa, menüde ilk olarak görüntülenen menü öğesi seçilir.

Kullanıcı fare işaretçisini bir menü öğesinin üzerine getirince Araç İpucu görüntülemek için öğenin ToolTip özelliğini ayarlayın.

Bir Menu denetimin birkaç farklı tür menü öğesi vardır. Aşağıdaki tabloda yer alan özellikleri kullanarak farklı menü öğesi türleri için stili (yazı tipi boyutu ve renk gibi) denetleyebilirsiniz.

Menü öğesi stili özelliği Description
DynamicHoverStyle Fare işaretçisi üzerine yerleştirildiğinde dinamik menü öğesinin stil ayarları.
DynamicMenuItemStyle Tek bir dinamik menü öğesinin stil ayarları.
DynamicMenuStyle Dinamik menünün stil ayarları.
DynamicSelectedStyle Seçili durumdaki dinamik menü öğesinin stil ayarları.
StaticHoverStyle Fare işaretçisi üzerine yerleştirildiğinde statik menü öğesinin stil ayarları.
StaticMenuItemStyle Tek bir statik menü öğesinin stil ayarları.
StaticMenuStyle Statik menünün stil ayarları.
StaticSelectedStyle Seçili durumdaki statik menü öğesinin stil ayarları.

Tek tek stil özelliklerini ayarlamak yerine, aşağıdaki tabloda gösterilen stil koleksiyonlarını kullanarak menü öğelerine uygulanan stilleri düzeylerine göre belirtebilirsiniz.

Düzey stili koleksiyonları Description
LevelMenuItemStyles Menü öğelerinin MenuItemStyle stilini düzeylerine göre denetleyebilen nesneler koleksiyonu.
LevelSelectedStyles Düzeylerine göre seçili menü öğelerinin stilini denetleye nesneler koleksiyonu MenuItemStyle .
LevelSubMenuStyles Alt menü öğelerinin MenuItemStyle stilini düzeylerine göre denetleen nesne koleksiyonu.

Koleksiyondaki ilk stil, menü ağacındaki ilk derinlik düzeyindeki menü öğelerinin stiline karşılık gelir. Koleksiyondaki ikinci stil, menü ağacındaki ikinci derinlik düzeyindeki menü öğelerinin stiline karşılık gelir ve bu şekilde devam eder. Bu genellikle, alt menüleri olup olmadığına bakılmaksızın belirli bir derinlikte menü öğelerinin aynı görünüme sahip olması gereken içindekiler stilinde gezinti menüleri oluşturmak için kullanılır.

Not

Denetimin stilini tanımlamak için Menu önceki tabloda listelenen düzey stili koleksiyonlarından herhangi birini kullanırsanız, bu stil ayarları tek tek menü öğesi stili özelliklerini geçersiz kılar.

Menü öğesinin stilini özelleştirmenin yanı sıra, görünümünü de özelleştirebilirsiniz. Aşağıdaki tabloda özellikleri ayarlayarak menü öğesinin farklı bölümleri için özel görüntüler belirtebilirsiniz.

Görüntü özelliği Description
ImageUrl Menü öğesinin metninin yanında görüntülenen isteğe bağlı bir resim.
PopOutImageUrl Menü öğesinde dinamik bir alt menü olduğunu belirtmek için menü öğesinde görüntülenen isteğe bağlı bir resim.
SeparatorImageUrl Menü öğesini diğer menü öğelerinden ayırmak için en altında görüntülenen isteğe bağlı bir resim.

Bir denetimde Menu bir menü öğesinin seçili olup olmadığını belirlemek için özelliğini kullanın Selected . Ayrıca özelliğini kullanarak DataBound bir menü öğesinin verilere bağlı olup olmadığını belirleyebilirsiniz. Bir menü öğesi verilere bağlıysa, menü öğesine bağlı veri öğesinin değerlerine erişmek için özelliğini kullanabilirsiniz DataItem .

Sınıfının bir örneğinin ilk özellik değerlerinin MenuItem listesi için oluşturucuya MenuItem bakın.

Oluşturucular

MenuItem()

Menü metni veya değer olmadan sınıfın MenuItem yeni bir örneğini başlatır.

MenuItem(String)

Belirtilen menü metnini kullanarak sınıfın MenuItem yeni bir örneğini başlatır.

MenuItem(String, String)

Belirtilen menü metnini ve değerini kullanarak sınıfın MenuItem yeni bir örneğini başlatır.

MenuItem(String, String, String)

Belirtilen menü metnini, değerini ve bir görüntünün URL'sini kullanarak sınıfın yeni bir örneğini MenuItem başlatır.

MenuItem(String, String, String, String)

Belirtilen menü metnini, değeri, görüntü URL'sini MenuItem ve gezinti URL'sini kullanarak sınıfın yeni bir örneğini başlatır.

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

Belirtilen menü metnini, değeri, görüntü URL'sini, gezinti URL'sini MenuItem ve hedefi kullanarak sınıfın yeni bir örneğini başlatır.

Özellikler

ChildItems

Geçerli menü öğesinin alt menü öğelerini içeren bir MenuItemCollection nesneyi alır.

DataBound

Menü öğesinin veri bağlama aracılığıyla oluşturulup oluşturulmadığını belirten bir değer alır.

DataItem

Menü öğesine bağlı olan veri öğesini alır.

DataPath

Menü öğesine bağlı verilerin yolunu alır.

Depth

Menü öğesinin görüntülendiği düzeyi alır.

Enabled

Nesnenin MenuItem etkinleştirilip etkinleştirilmediğini belirten bir değer alır veya ayarlar; böylece öğenin bir açılır görüntü ve alt menü öğeleri görüntülemesine izin verir.

ImageUrl

Menü öğesindeki metnin yanında görüntülenen görüntünün URL'sini alır veya ayarlar.

NavigateUrl

Menü öğesine tıklandığında gidilen URL'yi alır veya ayarlar.

Parent

Geçerli menü öğesinin üst menü öğesini alır.

PopOutImageUrl

Menü öğesinin dinamik bir alt menüsü olduğunu belirtmek için bir menü öğesinde görüntülenen görüntünün URL'sini alır veya ayarlar.

Selectable

Nesnenin MenuItem seçilip seçilemeyeceğini veya "tıklanabilir" olup olmadığını belirten bir değer alır veya ayarlar.

Selected

Denetimde geçerli menü öğesinin seçili olup olmadığını belirten bir Menu değer alır veya ayarlar.

SeparatorImageUrl

Menü öğesinin alt kısmında görüntülenen görüntünün URL'sini alır veya ayarlar ve diğer menü öğelerinden ayırır.

Target

Bir menü öğesiyle ilişkili Web sayfası içeriğinin görüntüleneceği hedef pencereyi veya çerçeveyi alır veya ayarlar.

Text

Denetimdeki menü öğesi Menu için görüntülenen metni alır veya ayarlar.

ToolTip

Menü öğesi için Araç İpucu metnini alır veya ayarlar.

Value

Geri gönderme olaylarını işlemek için kullanılan veriler gibi menü öğesiyle ilgili ek verileri depolamak için kullanılan görüntülenmeyen bir değeri alır veya ayarlar.

ValuePath

Kök menü öğesinden geçerli menü öğesine giden yolu alır.

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

ICloneable.Clone()

Geçerli MenuItem nesnenin bir kopyasını oluşturur.

IStateManager.IsTrackingViewState

Nesnenin MenuItem görünüm durumundaki değişiklikleri kaydedip kaydetmediğini gösteren bir değer alır.

IStateManager.LoadViewState(Object)

Menü öğesinin daha önce kaydedilmiş görünüm durumunu yükler.

IStateManager.SaveViewState()

Görünüm durumu değişikliklerini bir Objectöğesine kaydeder.

IStateManager.TrackViewState()

Nesneye görünüm durumundaki MenuItem değişiklikleri izlemesini bildirir.

Şunlara uygulanır

Ayrıca bkz.