MenuItemBinding Klasa

Definicja

Definiuje relację między elementem danych a elementem menu, z który jest wiązany w kontrolce Menu . Klasa ta nie może być dziedziczona.

public ref class MenuItemBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class MenuItemBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type MenuItemBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class MenuItemBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Dziedziczenie
MenuItemBinding
Implementuje

Przykłady

Poniższy przykład kodu pokazuje, jak używać MenuItemBinding obiektów do definiowania relacji między polami XmlDataSource kontrolki a elementami menu w kontrolce Menu . Aby ten przykład działał poprawnie, należy skopiować przykładowe dane XML poniżej do pliku o nazwie Menu.xml.


<%@ 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>MenuItemBinding Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.xml"
        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" >
  <head runat="server">
    <title>MenuItemBinding Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

      <asp:xmldatasource id="MenuSource"
        datafile="Menu.xml"
        runat="server"/> 

    </form>
  </body>
</html>

Poniższy kod to przykładowe dane mapy witryny dla poprzedniego przykładu.

<MapHomeNode ImageUrl="~\Images\Home.gif"

Title="Home"

Description="Root Page"

ToolTip="Home Page">

<MapNode ImageUrl="~\Images\Music.gif"

Title="Music"

Description="Music Category"

ToolTip="Music Page">

<MapNode ImageUrl="~\Images\Classical.gif"

Title="Classical"

Description="Classical Section"

ToolTip="Classical Page"/>

<MapNode ImageUrl="~\Images\Rock.gif"

Title="Rock"

Description="Rock Section"

ToolTip="Rock Page"/>

<MapNode ImageUrl="~\Images\Jazz.gif"

Title="Jazz"

Description="Jazz Section"

ToolTip="Jazz Page"/>

</MapNode>

<MapNode ImageUrl="~\Images\Movies.gif"

Title="Movies"

Description="Movies Category"

ToolTip="Movies Page">

<MapNode ImageUrl="~\Images\Action.gif"

Title="Action"

Description="Action Section"

ToolTip="Action Page"/>

<MapNode ImageUrl="~\Images\Drama.gif"

Title="Drama"

Description="Drama Section"

ToolTip="Drama Page"/>

<MapNode ImageUrl="~\Images\Musical.gif"

Title="Musical"

Description="Musical Section"

ToolTip="Musical Page"/>

</MapNode>

</MapHomeNode>

Uwagi

Gdy kontrolka Menu jest powiązana ze źródłem danych, w którym każdy element danych zawiera wiele pól (takich jak element XML z kilkoma atrybutami), jeśli nie zdefiniowano powiązań elementów menu, element menu wyświetla wartość zwracaną przez ToString() metodę elementu danych domyślnie. W przypadku elementu XML element menu wyświetla nazwę elementu, który pokazuje podstawową strukturę menu, ale nie jest bardzo przydatny w przeciwnym razie. Właściwości elementu menu można powiązać z określonym polem, określając powiązania elementów menu. Obiekt MenuItemBinding definiuje relację między poszczególnymi elementami danych i elementem menu, z który jest wiązany.

Uwaga

Gdy kontrolka Menu jest powiązana z kontrolką SiteMapDataSource , powiązania elementów menu nie mają wpływu. Powiązanie jest wykonywane automatycznie przy użyciu dostawcy mapy lokacji.

Kontrolka Menu przechowuje swoje MenuItemBinding obiekty we DataBindings właściwości i stosuje powiązania do źródła danych, aby utworzyć relację jeden do jednego między hierarchią menu a hierarchią źródła danych. Dla każdego elementu danych w źródle danych kontrolka Menu próbuje dopasować element danych do MenuItemBinding obiektu w celu utworzenia odpowiedniego MenuItem obiektu.

Podczas tworzenia MenuItemBinding obiektu należy określić kryteria powiązania. Kryteria wskazują, kiedy element danych powinien być powiązany z elementem menu. Można określić Depth, DataMember, lub oba.

Głębokość elementu menu określa poziom menu, który jest powiązany. Na przykład następująca MenuItemBinding deklaracja wiąże pola Nazwa i identyfikator źródła danych z Text właściwościami i Value , odpowiednio, ze wszystkimi węzłami o głębokości 0:

<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">  

Element członkowski danych określa typ elementu danych w bazowym źródle danych, ale może reprezentować różne informacje w zależności od źródła danych. Każdy element danych w hierarchicznym źródle danych (reprezentowanym przez IHierarchyData obiekt) uwidacznia Type właściwość określającą typ elementu danych. Na przykład element członkowski danych dla elementu XML określa nazwę elementu. Gdy źródło danych zawiera wiele typów elementów danych, element członkowski danych określa typ elementu danych do użycia. Następująca MenuItemBinding deklaracja wiąże <Book> elementy XmlDataSource kontrolki ze wszystkimi elementami menu w menu, niezależnie od lokalizacji w hierarchii:

<asp:MenuItemBinding DataMember="Book" TextField="Title" ValueField= "ISBN">  

Czasami może być konieczne utworzenie powiązania elementu menu, które określa zarówno głębokość, jak i element członkowski danych. Jest to często używane, gdy źródło danych zawiera elementy na różnych poziomach, które mają tę samą wartość składowa danych. Na przykład można mieć <Item> elementy, które są wyświetlane na różnych poziomach w pliku XML. Poniższe MenuItemBinding deklaracje pokazują, jak określić powiązania elementów menu, które mają zastosowanie do identycznych elementów członkowskich danych w różnych głębokościach menu:

<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">

<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">

Jeśli powiązanie elementu menu jest definiowane bez głębokości i elementu członkowskiego danych, powiązanie elementu menu jest stosowane do wszystkich elementów menu w menu. Jest to często używane, gdy wszystkie elementy danych mają te same właściwości i powinny być wyświetlane identycznie, niezależnie od głębokości menu.

Po ustanowieniu kryteriów powiązania można powiązać właściwość MenuItem obiektu, który może być powiązany z wartością. Możesz powiązać je z polem elementu danych lub z wartością statyczną. W przypadku powiązania z wartością statyczną wszystkie MenuItem obiekty, do których MenuItemBinding zastosowano obiekt, mają tę samą wartość. Właściwości powiązane z polami zawierają wartości odpowiedniego pola ze źródła danych.

Uwaga

Możesz selektywnie zastąpić właściwość powiązana w MenuItem obiekcie, ustawiając odpowiednią właściwość bezpośrednio.

W poniższej tabeli wymieniono właściwości MenuItemBinding klasy, które umożliwiają powiązanie właściwości MenuItem obiektu z polem elementu danych.

Właściwość Opis
ImageUrlField Pole do powiązania z ImageUrl właściwością MenuItem obiektu.
NavigateUrlField Pole do powiązania z NavigateUrl właściwością MenuItem obiektu.
TextField Pole do powiązania z Text właściwością MenuItem obiektu.
ToolTipField Pole do powiązania z ToolTip właściwością MenuItem obiektu.
ValueField Pole do powiązania z Value właściwością MenuItem obiektu.

W poniższej tabeli wymieniono właściwości MenuItemBinding klasy, które umożliwiają powiązanie właściwości MenuItem obiektu z wartością statyczną.

Właściwość Opis
ImageUrl Wartość statyczna, która ma być powiązana ImageUrl z właściwością MenuItem obiektu.
NavigateUrl Wartość statyczna, która ma być powiązana NavigateUrl z właściwością MenuItem obiektu.
Target Wartość statyczna, która ma być powiązana Target z właściwością MenuItem obiektu.
Text Wartość statyczna, która ma być powiązana Text z właściwością MenuItem obiektu.
ToolTip Wartość statyczna, która ma być powiązana ToolTip z właściwością MenuItem obiektu.
Value Wartość statyczna, która ma być powiązana Value z właściwością MenuItem obiektu.

Jeśli obiekty powodujące MenuItemBinding konflikt są zdefiniowane, kontrolka Menu stosuje powiązania elementów menu w następującej kolejności pierwszeństwa:

  1. MenuItemBinding Obiekt, który definiuje i pasuje zarówno do głębokości, jak i elementu członkowskiego danych.

  2. Obiekt MenuItemBinding , który definiuje i pasuje tylko do elementu członkowskiego danych.

  3. Obiekt MenuItemBinding , który definiuje i pasuje tylko do głębokości.

  4. MenuItemBinding Obiekt, który definiuje ani głębokość, ani składową danych. (Ten typ powiązania elementu menu jest stosowany do wszystkich elementów menu w menu).

  5. MenuItemBinding Obiekt, który nie ma dopasowania w źródle danych. W takim przypadku wartość zwracana przez ToString() metodę elementu danych jest następnie powiązana z Text właściwościami i Value elementów menu, do których MenuItemBinding zastosowano obiekt.

Klasa MenuItemBinding umożliwia również formatowanie tekstu wyświetlanego w elemencie menu przez ustawienie FormatString właściwości.

Konstruktory

MenuItemBinding()

Inicjuje nowe wystąpienie klasy MenuItemBinding.

Właściwości

DataMember

Pobiera lub ustawia element członkowski danych w celu powiązania z elementem menu.

Depth

Pobiera lub ustawia głębokość menu, do której MenuItemBinding jest stosowany obiekt.

Enabled

Pobiera lub ustawia wartość wskazującą, czy element menu, do którego MenuItemBinding zastosowano obiekt, jest włączony, co umożliwia elementowi wyświetlanie obrazu podręcznego i wszystkich elementów menu podrzędnego.

EnabledField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania Enabled z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

FormatString

Pobiera lub ustawia ciąg określający format wyświetlania tekstu elementu menu, do którego MenuItemBinding jest stosowany obiekt.

ImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany obok tekstu elementu menu, do którego MenuItemBinding jest stosowany obiekt.

ImageUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania ImageUrl z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

NavigateUrl

Pobiera lub ustawia adres URL, do którego ma być link po kliknięciu MenuItemBinding elementu menu, do którego jest stosowany obiekt.

NavigateUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania NavigateUrl z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

PopOutImageUrl

Pobiera lub ustawia adres URL na obraz, który wskazuje obecność dynamicznego podmenu elementu menu, do którego MenuItemBinding jest stosowany obiekt.

PopOutImageUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania PopOutImageUrl z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

Selectable

Pobiera lub ustawia wartość wskazującą, czy można wybrać element menu, do którego MenuItemBinding można zastosować obiekt, czy też jest "możliwy do kliknięcia".

SelectableField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania Selectable z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

SeparatorImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany poniżej tekstu elementu menu (aby oddzielić go od innych elementów menu) dla elementu menu, do którego MenuItemBinding jest stosowany obiekt.

SeparatorImageUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania SeparatorImageUrl z właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

Target

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

TargetField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z Target właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

Text

Pobiera lub ustawia tekst wyświetlany dla elementu menu, do którego MenuItemBinding jest stosowany obiekt.

TextField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z Text właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

ToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla elementu menu, do którego MenuItemBinding jest stosowany obiekt.

ToolTipField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z ToolTip właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

Value

Pobiera lub ustawia wartość niedyskrywałą używaną do przechowywania wszelkich dodatkowych danych dotyczących elementu menu, do którego MenuItemBinding jest stosowany obiekt, na przykład danych używanych do obsługi zdarzeń zwrotnych.

ValueField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z Value właściwością MenuItem obiektu, do którego MenuItemBinding jest stosowany obiekt.

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.

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy kopię MenuItemBinding obiektu.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Aby uzyskać opis tego członka, zobacz DataSourceViewSchema.

IStateManager.IsTrackingViewState

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

IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku węzła.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w obiekcie Object.

IStateManager.TrackViewState()

Instruuje obiekt, MenuItemBinding aby śledzić zmiany stanu widoku.

Dotyczy

Zobacz też