Sdílet prostřednictvím


MenuItemBinding.DataMember Vlastnost

Definice

Získá nebo nastaví datový člen vytvořit vazbu k položce nabídky.

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

Hodnota vlastnosti

String

Datový člen, který se má svázat s položkou nabídky. Výchozí hodnota je prázdný řetězec (""), který označuje, že tato vlastnost není nastavena.

Příklady

Následující příklad kódu ukazuje, jak použít DataMember vlastnost určit, který xml element vytvořit vazbu na položky nabídky v ovládacím Menu prvku. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML níže do souboru s názvem MenuDataMember.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 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>

Následující kód je ukázková data mapy webu pro předchozí příklad.

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

Poznámky

Při vytváření objektu MenuItemBinding je nutné zadat kritéria pro vazbu. Kritéria označují, kdy má být datová položka vázána na položku nabídky. Můžete zadat Depth vlastnost, DataMember vlastnost nebo obojí.

Pokud zdroj dat obsahuje více prvků nebo tabulek, použijte DataMember vlastnost k určení elementu nebo tabulky pro vytvoření vazby k položce nabídky. Datový člen určuje typ datové položky v podkladovém zdroji dat, ale může představovat různé informace v závislosti na zdroji dat. Každá datová položka v hierarchickém zdroji dat (reprezentovaná objektem System.Web.UI.IHierarchyData ) zveřejňuje IHierarchyData.Type vlastnost, která určuje typ datové položky. Například datový člen elementu XML určuje název elementu. Následující MenuItemBinding deklarace sváže <Book> prvky XmlDataSource ovládacího prvku se všemi položkami nabídky v nabídce bez ohledu na umístění v hierarchii:

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

Někdy může být potřeba vytvořit vazbu položky nabídky, která určuje hloubku i datový člen. Často se používá, když zdroj dat obsahuje položky na různých úrovních, které mají stejnou hodnotu datového členu. Můžete <Item> mít například prvky, které se v souboru XML zobrazují na různých úrovních. Následující MenuItemBinding deklarace ukazují, jak určit vazby položek nabídky, které se vztahují na identické datové členy v různých hloubkách nabídky:

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

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

Pokud je vazba položky nabídky definována bez hloubky nebo datového členu, použije se vazba položky nabídky na všechny položky nabídky v nabídce. Tato možnost se běžně používá, pokud mají všechny datové položky stejné vlastnosti a měly by se zobrazovat identicky bez ohledu na hloubku nabídky.

Po vytvoření kritérií vazby můžete vytvořit vazbu vlastnosti objektu MenuItem , který může být vázán na hodnotu. Můžete vytvořit vazbu na pole datové položky nebo na statickou hodnotu. Při vazbě na statickou hodnotu sdílejí všechny MenuItem objekty, na které MenuItemBinding je objekt použit, stejnou hodnotu. Vlastnosti vázané na pole obsahují hodnoty pole ze zdroje dat.

Pokud jsou definovány konfliktní MenuItemBinding objekty, Menu ovládací prvek použije vazby položek nabídky v následujícím pořadí priority:

  1. Objekt MenuItemBinding , který definuje a odpovídá hloubkě i datovému členu.

  2. Objekt MenuItemBinding , který definuje a odpovídá pouze datovému členu.

  3. Objekt MenuItemBinding , který definuje a odpovídá pouze hloubkě.

  4. Objekt MenuItemBinding , který definuje hloubku ani datový člen. (Tento typ vazby položky nabídky se použije pro všechny položky nabídky v nabídce.)

  5. Objekt MenuItemBinding , který nemá shodu ve zdroji dat. V tomto případě je hodnota vrácená metodou ToString() datové položky vázána na Text vlastnosti Value položek nabídky, na které MenuItemBinding je objekt použit.

Platí pro

Viz také