MenuItemBinding.Depth Propriedade

Definição

Obtém ou define a profundidade do menu a que o MenuItemBinding objeto é aplicado.

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

Valor de Propriedade

A profundidade do menu à qual o MenuItemBinding é aplicado. O padrão é -1, o que indica que esta propriedade não está definida.

Atributos

Exemplos

O exemplo de código seguinte demonstra como usar a Depth propriedade para especificar a profundidade do menu à qual aplicar um MenuItemBinding objeto. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo abaixo para um ficheiro chamado 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>

O código seguinte é um exemplo de dados de mapa de sítios para o exemplo anterior.

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

Observações

Ao criar um MenuItemBinding objeto, deve especificar os critérios de encadernação. Os critérios indicam quando um elemento de dados deve ser associado a um item do menu. Pode especificar a Depth propriedade, a DataMember propriedade ou ambas.

Use a Depth propriedade para especificar a profundidade do menu à qual aplicar o MenuItemBinding objeto. Por exemplo, a seguinte MenuItemBinding declaração associa os campos Nome e ID da fonte de dados às Text propriedades e Value de e, respetivamente, de todos os itens do menu com profundidade 0:

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

Por vezes, pode ser necessário criar uma ligação de itens de menu que especifique tanto uma profundidade como um elemento de dados. Isto é frequentemente usado quando a fonte de dados contém itens em diferentes níveis que têm o mesmo valor de membro dos dados. Por exemplo, podes ter <Item> elementos que aparecem em diferentes níveis dentro de um ficheiro XML. As seguintes MenuItemBinding declarações mostram como especificar ligações de itens de menu que se aplicam a membros de dados idênticos em diferentes profundidades de menu:

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

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

Se uma ligação a itens do menu for definida sem profundidade e membro de dados, a ligação ao item do menu é aplicada a todos os itens dentro do menu. Isto é frequentemente usado quando todos os itens de dados têm as mesmas propriedades e devem ser apresentados de forma idêntica, independentemente da profundidade do menu.

Depois de estabelecidos os critérios de ligação, pode então atribuir uma propriedade de um MenuItem objeto que pode ser vinculada a um valor. Pode atribuir a um campo de um elemento de dados ou a um valor estático. Quando atribuídos a um valor estático, todos os MenuItem objetos a que o MenuItemBinding objeto é aplicado partilham o mesmo valor. Propriedades vinculadas a campos contêm os valores do campo da fonte de dados.

Se objetos em conflito MenuItemBinding forem definidos, o controlo Menu aplica as ligações dos itens do menu na seguinte ordem de precedência:

  1. O MenuItemBinding objeto que define e corresponde tanto a uma profundidade como a um elemento de dados.

  2. O MenuItemBinding objeto que define e corresponde apenas ao membro de dados.

  3. O MenuItemBinding objeto que define e corresponde apenas à profundidade.

  4. O MenuItemBinding objeto que não define nem a profundidade nem o elemento de dados. (Este tipo de atribuição de itens do menu é aplicado a todos os itens do menu no menu.)

  5. O MenuItemBinding objeto que não tem correspondência na fonte de dados. Neste caso, o valor devolvido pelo ToString() método do elemento de dados é então associado Text às propriedades e Value dos itens do menu aos quais o MenuItemBinding objeto é aplicado.

Aplica-se a

Ver também