MenuItemBinding.Depth Vlastnost

Definice

Získá nebo nastaví hloubku nabídky, na kterou MenuItemBinding je objekt aplikován.

public:
 property int Depth { int get(); void set(int value); };
[System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public int Depth { get; set; }
[System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public int Depth { get; set; }
[<System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Depth : int with get, set
[<System.ComponentModel.TypeConverter("System.Web.UI.Design.WebControls.TreeNodeBindingDepthConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Depth : int with get, set
Public Property Depth As Integer

Hodnota vlastnosti

Hloubka nabídky, na kterou MenuItemBinding je použit. Výchozí hodnota je -1, což znamená, že tato vlastnost není nastavena.

Atributy

Příklady

Následující příklad kódu ukazuje, jak použít Depth vlastnost k určení hloubky nabídky, se kterou se má použít MenuItemBinding objekt. Aby tento příklad fungoval správně, musíte zkopírovat níže uvedená ukázková data XML do souboru s názvem MenuDepth.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 Depth Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Depth Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding depth="0"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding depth="1"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding depth="2"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

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

      <h3>MenuItemBinding Depth Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <databindings>
        
          <asp:menuitembinding depth="0"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding depth="1"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding depth="2"
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </databindings>
        
      </asp:menu>

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

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

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

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

</MapNode>

Poznámky

Při vytváření objektu MenuItemBinding musíte zadat kritéria pro vazbu. Kritéria označují, kdy má být položka dat svázaná s položkou nabídky. Můžete zadat Depth vlastnost, DataMember vlastnost nebo obojí.

Depth Pomocí vlastnosti určete hloubku nabídky, ve které se má objekt použítMenuItemBinding. Například následující MenuItemBinding deklarace sváže pole Název a ID zdroje dat s Text vlastnostmi a a Value všech položek nabídky s hloubkou 0:

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

Někdy může být potřeba vytvořit vazbu položky nabídky, která určuje hloubku i datový člen. To se často používá, když zdroj dat obsahuje položky na různých úrovních, které mají stejnou hodnotu datového členu. Můžete například mít <Item> 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é platí pro 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 a datového členu, vazba položky nabídky se použije na všechny položky nabídky v nabídce. Tato možnost se běžně používá, když mají všechny datové položky stejné vlastnosti a měly by být zobrazeny identicky bez ohledu na hloubku nabídky.

Po vytvoření kritérií vazby pak můžete svázat vlastnost objektu MenuItem , která může být vázána 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í podle priority:

  1. Objekt MenuItemBinding , který definuje a odpovídá členu hloubky 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 hloubce.

  4. Objekt MenuItemBinding , který nedefinuje ani hloubku, ani datový člen. (Tento typ vazby položky nabídky se použije u všech položek 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 a Value položek nabídky, na které MenuItemBinding je objekt použit.

Platí pro

Viz také