MenuItemBinding.DataMember Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Datenmember ab, der an ein Menüelement gebunden werden soll, oder legt diesen fest.
public:
property System::String ^ DataMember { System::String ^ get(); void set(System::String ^ value); };
public string DataMember { get; set; }
member this.DataMember : string with get, set
Public Property DataMember As String
Eigenschaftswert
Der Datenmember, der an ein Menüelement gebunden werden soll. Der Standardwert ist eine leere Zeichenfolge ("") und gibt an, dass diese Eigenschaft nicht festgelegt ist.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der DataMember Eigenschaft angegeben wird, welches XML-Element an die Menüelemente in einem Menu Steuerelement gebunden werden soll. Damit dieses Beispiel ordnungsgemäß funktioniert, müssen Sie die folgenden XML-Beispieldaten in eine Datei mit dem Namen MenuDataMember.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 DataMember Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItemBinding DataMember Example</h3>
<asp:menu id="NavigationMenu"
datasourceid="MenuSource"
runat="server">
<databindings>
<asp:menuitembinding datamember="MapNodeHome"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_self" />
<asp:menuitembinding datamember="MapNodeCategory"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
<asp:menuitembinding datamember="MapNodeSection"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
</databindings>
</asp:menu>
<asp:xmldatasource id="MenuSource"
datafile="MenuDataMember.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 DataMember Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItemBinding DataMember Example</h3>
<asp:menu id="NavigationMenu"
datasourceid="MenuSource"
runat="server">
<databindings>
<asp:menuitembinding datamember="MapNodeHome"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_self" />
<asp:menuitembinding datamember="MapNodeCategory"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
<asp:menuitembinding datamember="MapNodeSection"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
</databindings>
</asp:menu>
<asp:xmldatasource id="MenuSource"
datafile="MenuDataMember.xml"
runat="server"/>
</form>
</body>
</html>
Der folgende Code ist Beispielwebsitezuordnungsdaten für das vorherige Beispiel.
<MapNodeHome ImageUrl="~\Images\Home.gif"
Title="Home"
Description="Root Page"
ToolTip="Home Page">
<MapNodeCategory ImageUrl="~\Images\Music.gif"
Title="Music"
Description="Music Category"
ToolTip="Music Page">
<MapNodeSection ImageUrl="~\Images\Classical.gif"
Title="Classical"
Description="Classical Section"
ToolTip="Classical Page"/>
<MapNodeSection ImageUrl="~\Images\Rock.gif"
Title="Rock"
Description="Rock Section"
ToolTip="Rock Page"/>
<MapNodeSection ImageUrl="~\Images\Jazz.gif"
Title="Jazz"
Description="Jazz Section"
ToolTip="Jazz Page"/>
</MapNodeCategory>
<MapNodeCategory ImageUrl="~\Images\Movies.gif"
Title="Movies"
Description="Movies Category"
ToolTip="Movies Page">
<MapNodeSection ImageUrl="~\Images\Action.gif"
Title="Action"
Description="Action Section"
ToolTip="Action Page"/>
<MapNodeSection ImageUrl="~\Images\Drama.gif"
Title="Drama"
Description="Drama Section"
ToolTip="Drama Page"/>
<MapNodeSection ImageUrl="~\Images\Musical.gif"
Title="Musical"
Description="Musical Section"
ToolTip="Musical Page"/>
</MapNodeCategory>
</MapNodeHome>
Hinweise
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 die Depth Eigenschaft, die DataMember Eigenschaft oder beides angeben.
Wenn die Datenquelle mehrere Elemente oder Tabellen enthält, verwenden Sie die Eigenschaft, um das Element oder die DataMember Tabelle anzugeben, um an ein Menüelement zu binden. 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 System.Web.UI.IHierarchyData Objekt) macht eine IHierarchyData.Type Eigenschaft verfügbar, die den Typ des Datenelements angibt. Beispielsweise gibt das Datenelement für ein XML-Element den Namen des Elements an. 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 oder 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 Felds aus der Datenquelle.
Wenn konfliktende MenuItemBinding Objekte definiert sind, wendet das Menu Steuerelement die Menüelementbindungen in der folgenden Reihenfolge der Rangfolge an:
Das MenuItemBinding Objekt, das sowohl eine Tiefe als auch ein Datenelement definiert und übereinstimmt.
Das MenuItemBinding Objekt, das nur das Datenelement definiert und übereinstimmt.
Das MenuItemBinding Objekt, das nur die Tiefe definiert und übereinstimmt.
Das MenuItemBinding Objekt, das weder die Tiefe noch das Datenelement definiert. (Dieser Typ der Menüelementbindung wird auf alle Menüelemente im Menü angewendet.)
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.