MenuItemBinding Klasse

Definition

Definiert die Beziehung zwischen einem Datenelement und dem Menüelement, an das es in einem Menu-Steuerelement gebunden werden soll. Diese Klasse kann nicht vererbt werden.

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
Vererbung
MenuItemBinding
Implementiert

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Objekte zum Definieren der Beziehung zwischen den Feldern eines XmlDataSource Steuerelements und den Menüelementen in einem Menu Steuerelement verwendet MenuItemBinding werden. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie die folgenden XML-Beispieldaten in eine Datei mit dem Namen Menu.xml kopieren.


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

Der folgende Code ist Beispielwebsitezuordnungsdaten für das vorherige Beispiel.

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

Hinweise

Wenn das Menu Steuerelement an eine Datenquelle gebunden ist, in der jedes Datenelement mehrere Felder enthält (z. B. ein XML-Element mit mehreren Attributen), wenn keine Menüelementbindungen definiert sind, zeigt ein Menüelement standardmäßig den Von der ToString() Methode des Datenelements zurückgegebenen Wert an. Im Falle eines XML-Elements zeigt das Menüelement den Elementnamen an, der die zugrunde liegende Struktur des Menüs anzeigt, aber ansonsten nicht sehr nützlich ist. Sie können die Eigenschaften eines Menüelements an ein bestimmtes Feld binden, indem Sie Menüelementbindungen angeben. Ein MenuItemBinding Objekt definiert die Beziehung zwischen jedem Datenelement und dem Menüelement, an das es gebunden ist.

Hinweis

Wenn das Menu Steuerelement an ein SiteMapDataSource Steuerelement gebunden ist, haben Menüelementbindungen keine Auswirkung. Die Bindung wird automatisch mithilfe des Websitezuordnungsanbieters ausgeführt.

Das Menu Steuerelement speichert seine MenuItemBinding Objekte in der DataBindings Eigenschaft und wendet die Bindungen auf die Datenquelle an, um eine 1:1-Beziehung zwischen der Menühierarchie und der Datenquellenhierarchie zu erstellen. Für jedes Datenelement in der Datenquelle versucht das Menu Steuerelement, das Datenelement mit einem MenuItemBinding Objekt übereinzugleichen, um das entsprechende MenuItem Objekt zu erstellen.

Beim Erstellen eines MenuItemBinding Objekts müssen Sie die Kriterien für die Bindung angeben. Die Kriterien geben an, wann ein Datenelement an ein Menüelement gebunden werden soll. Sie können das , das DepthDataMemberoder beides angeben.

Eine Menüelementtiefe gibt die Menüebene an, die gebunden wird. Die folgende MenuItemBinding Deklaration bindet beispielsweise die Felder Name und ID der Datenquelle an die Text Value und die Eigenschaften aller Knoten mit einer Tiefe von 0:

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

Ein Datenelement gibt den Typ des Datenelements in der zugrunde liegenden Datenquelle an, kann jedoch je nach Datenquelle unterschiedliche Informationen darstellen. Jedes Datenelement in einer hierarchischen Datenquelle (dargestellt durch ein IHierarchyData Objekt) macht eine Type Eigenschaft verfügbar, die den Typ des Datenelements angibt. Beispielsweise gibt das Datenelement für ein XML-Element den Namen des Elements an. Wenn eine Datenquelle mehrere Datentypen enthält, gibt das Datenelementelement an, welches Datentyp verwendet werden soll. Die folgende MenuItemBinding Deklaration bindet die <Book> Elemente eines XmlDataSource Steuerelements unabhängig von der Position in der Hierarchie an alle Menüelemente im Menü:

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

Manchmal müssen Sie möglicherweise eine Menüelementbindung erstellen, die sowohl eine Tiefe als auch ein Datenelement angibt. Dies wird häufig verwendet, wenn die Datenquelle Elemente auf verschiedenen Ebenen enthält, die denselben Datenelementwert aufweisen. Sie können beispielsweise Elemente haben <Item> , die auf unterschiedlichen Ebenen innerhalb einer XML-Datei angezeigt werden. Die folgenden MenuItemBinding Deklarationen zeigen, wie Menüelementbindungen angegeben werden, die auf identische Datenelemente in verschiedenen Menütiefen angewendet werden:

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

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

Wenn eine Menüelementbindung ohne Tiefe und ein Datenelement definiert ist, wird die Menüelementbindung auf alle Menüelemente im Menü angewendet. Dies wird häufig verwendet, wenn alle Datenelemente dieselben Eigenschaften aufweisen und unabhängig von der Menütiefe identisch angezeigt werden sollen.

Nachdem die Bindungskriterien festgelegt wurden, können Sie dann eine Eigenschaft eines MenuItem Objekts binden, das an einen Wert gebunden werden kann. Sie können an ein Feld eines Datenelements oder an einen statischen Wert binden. Wenn sie an einen statischen Wert gebunden sind, teilen alle MenuItem Objekte, auf die das MenuItemBinding Objekt angewendet wird, denselben Wert. Eigenschaften, die an Felder gebunden sind, enthalten die Werte des entsprechenden Felds aus der Datenquelle.

Hinweis

Sie können eine gebundene Eigenschaft in einem MenuItem Objekt selektiv überschreiben, indem Sie die entsprechende Eigenschaft direkt festlegen.

In der folgenden Tabelle sind die Eigenschaften der Klasse aufgeführt, mit denen MenuItemBinding Sie eine Eigenschaft des MenuItem Objekts an ein Feld eines Datenelements binden können.

Eigenschaft BESCHREIBUNG
ImageUrlField Das Feld, das an die ImageUrl Eigenschaft eines MenuItem Objekts gebunden werden soll.
NavigateUrlField Das Feld, das an die NavigateUrl Eigenschaft eines MenuItem Objekts gebunden werden soll.
TextField Das Feld, das an die Text Eigenschaft eines MenuItem Objekts gebunden werden soll.
ToolTipField Das Feld, das an die ToolTip Eigenschaft eines MenuItem Objekts gebunden werden soll.
ValueField Das Feld, das an die Value Eigenschaft eines MenuItem Objekts gebunden werden soll.

In der folgenden Tabelle sind die Eigenschaften der Klasse aufgeführt, mit denen MenuItemBinding Sie eine Eigenschaft des MenuItem Objekts an einen statischen Wert binden können.

Eigenschaft BESCHREIBUNG
ImageUrl Der statische Wert, der an die ImageUrl Eigenschaft eines MenuItem Objekts gebunden werden soll.
NavigateUrl Der statische Wert, der an die NavigateUrl Eigenschaft eines MenuItem Objekts gebunden werden soll.
Target Der statische Wert, der an die Target Eigenschaft eines MenuItem Objekts gebunden werden soll.
Text Der statische Wert, der an die Text Eigenschaft eines MenuItem Objekts gebunden werden soll.
ToolTip Der statische Wert, der an die ToolTip Eigenschaft eines MenuItem Objekts gebunden werden soll.
Value Der statische Wert, der an die Value Eigenschaft eines MenuItem Objekts gebunden werden soll.

Wenn konfliktende MenuItemBinding Objekte definiert sind, wendet das Menu Steuerelement die Menüelementbindungen in der folgenden Reihenfolge der Rangfolge an:

  1. Das MenuItemBinding Objekt, das sowohl eine Tiefe als auch ein Datenelement definiert und übereinstimmt.

  2. Das MenuItemBinding Objekt, das nur das Datenelement definiert und übereinstimmt.

  3. Das MenuItemBinding Objekt, das nur die Tiefe definiert und übereinstimmt.

  4. Das MenuItemBinding Objekt, das weder die Tiefe noch das Datenelement definiert. (Dieser Typ der Menüelementbindung wird auf alle Menüelemente im Menü angewendet.)

  5. Das MenuItemBinding Objekt, das keine Übereinstimmung in der Datenquelle hat. In diesem Fall wird der von der ToString() Methode des Datenelements zurückgegebene Wert dann an die Text Eigenschaften Value der Menüelemente gebunden, auf die das MenuItemBinding Objekt angewendet wird.

Mit der MenuItemBinding Klasse können Sie auch den text formatieren, der in einem Menüelement angezeigt wird, indem Sie die FormatString Eigenschaft festlegen.

Konstruktoren

MenuItemBinding()

Initialisiert eine neue Instanz der MenuItemBinding-Klasse.

Eigenschaften

DataMember

Ruft den Datenmember ab, der an ein Menüelement gebunden werden soll, oder legt diesen fest.

Depth

Ruft die Menütiefe ab, auf die das MenuItemBinding-Objekt angewendet wird, oder legt diese fest.

Enabled

Ruft einen Wert ab, der angibt, ob das Menüelement aktiviert ist, für das das MenuItemBinding-Objekt übernommen wird, sodass das Element ein Popoutbild sowie vorhandene untergeordnete Menüelemente anzeigen kann, oder legt diesen fest.

EnabledField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Enabled-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

FormatString

Ruft die Zeichenfolge ab, mit der das Anzeigeformat für den Text eines Menüelements angegeben wird, für das das MenuItemBinding-Objekt übernommen wird, oder legt diese fest.

ImageUrl

Ruft die URL für ein Bild ab, das neben dem Text eines Menüelements angezeigt wird, für das das MenuItemBinding-Objekt übernommen wird, oder legt diese fest.

ImageUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die ImageUrl-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

NavigateUrl

Ruft die URL ab, zu der ein Link hergestellt werden soll, wenn auf ein Menüelement geklickt wird, für das das MenuItemBinding-Objekt übernommen wird, oder legt diese fest.

NavigateUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die NavigateUrl-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

PopOutImageUrl

Ruft die URL für ein Bild ab, das das Vorhandensein eines dynamischen Untermenüs für ein Menüelement anzeigt, für das das MenuItemBinding-Objekt übernommen wird, oder legt diese fest.

PopOutImageUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die PopOutImageUrl-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

Selectable

Ruft einen Wert ab, der angibt, ob das Menüelement, für das das MenuItemBinding-Objekt übernommen wird, ausgewählt werden kann oder ob darauf geklickt werden kann, oder legt diesen Wert fest.

SelectableField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Selectable-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

SeparatorImageUrl

Ruft für ein Menüelement, für das das MenuItemBinding-Objekt übernommen wird, die URL eines Bilds ab, das unterhalb des Texts eines Menüelements angezeigt wird (damit es von anderen Menüelementen getrennt wird), oder legt diese URL fest.

SeparatorImageUrlField

Ruft den Namen des Felds aus der Datenquelle ab, das an die SeparatorImageUrl-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

Target

Ruft das Zielfenster oder den Zielframe ab, in dem die Webseiteninhalte angezeigt werden sollen, die einem Menüeelement zugeordnet sind, für das das MenuItemBinding-Objekt übernommen wird, oder legt dieses bzw. diesen fest.

TargetField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Target-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

Text

Ruft den Text ab, der für das Menüelement angezeigt wird, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

TextField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Text-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

ToolTip

Ruft den QuickInfo-Text für ein Menüelement ab, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

ToolTipField

Ruft den Namen des Felds aus der Datenquelle ab, das an die ToolTip-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

Value

Ruft einen nicht angezeigten Wert ab, mit dem zusätzliche Daten zu einem Menüelement gespeichert werden, für das das MenuItemBinding-Objekt übernommen wird (z. B. Daten zum Behandeln eines Postbackereignisses), oder legt diesen fest.

ValueField

Ruft den Namen des Felds aus der Datenquelle ab, das an die Value-Eigenschaft eines MenuItem-Objekts gebunden werden soll, für das das MenuItemBinding-Objekt übernommen wird, oder legt diesen fest.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

Explizite Schnittstellenimplementierungen

ICloneable.Clone()

Erstellt eine Kopie des MenuItemBinding-Objekts.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Eine Beschreibung dieses Elements finden Sie unter DataSourceViewSchema.

IStateManager.IsTrackingViewState

Ruft einen Wert ab, der angibt, ob das MenuItemBinding-Objekt Änderungen des Ansichtszustands speichert.

IStateManager.LoadViewState(Object)

Lädt den zuvor gespeicherten Ansichtszustand des Knotens.

IStateManager.SaveViewState()

Speichert die Änderungen am Ansichtszustand in einem Object.

IStateManager.TrackViewState()

Weist das MenuItemBinding-Objekt an, Änderungen am Ansichtszustand nachzuverfolgen.

Gilt für

Siehe auch