Menu.DataBindings Propriedade

Definição

Obtém uma coleção de MenuItemBinding objetos que definem a relação entre um elemento de dados e o item do menu ao qual está ligado.

public:
 property System::Web::UI::WebControls::MenuItemBindingCollection ^ DataBindings { System::Web::UI::WebControls::MenuItemBindingCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.MenuItemBindingCollection DataBindings { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.DataBindings : System.Web.UI.WebControls.MenuItemBindingCollection
Public ReadOnly Property DataBindings As MenuItemBindingCollection

Valor de Propriedade

A que representa a relação entre um elemento de dados e o item do menu ao qual MenuItemBindingCollection está vinculado.

Atributos

Exemplos

O exemplo de código seguinte demonstra como usar a DataBindings coleção para definir a relação entre os campos de um XmlDataSource controlo e os itens do menu num Menu controlo. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo abaixo para um ficheiro chamado Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
       <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

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

Segue-se um exemplo de dados de mapa de sítios para o exemplo anterior.

<MapHomeNode url="~\Home.aspx"
  title="Home"
  description="Home">
  <MapNode url="~\Music.aspx"
    title="Music"
    description="Music">
    <MapNode url="~\Classical.aspx"
      title="Classical"
      description="Classical"/>
    <MapNode url="~\Rock.aspx"
      title="Rock"
      description="Rock"/>
    <MapNode url="~\Jazz.aspx"
      title="Jazz"
      description="Jazz"/>
  </MapNode>
  <MapNode url="~\Movies.aspx"
    title="Movies"
    description="Movies">
    <MapNode url="~\Action.aspx"
      title="Action"
      description="Action"/>
    <MapNode url="~\Drama.aspx"
      title="Drama"
      description="Drama"/>
    <MapNode url="~\Musical.aspx"
      title="Musical"
      description="Musical"/>
  </MapNode>
</MapHomeNode>

Observações

A DataBindings coleção contém MenuItemBinding objetos que definem a relação entre um elemento de dados e o item do menu ao qual está vinculado. Ao ligar a uma fonte de dados onde cada elemento contém múltiplas propriedades (como um elemento XML com vários atributos), um elemento de menu apresenta o valor devolvido pelo ToString() método do elemento de dados por defeito. No caso de um elemento XML, o elemento do menu mostra o nome do elemento, que mostra a estrutura subjacente da árvore, mas não é muito útil de outra forma. Pode associar um item de menu a uma propriedade específica de item de dados especificando ligações de itens de menu.

Ao definir a relação entre um elemento de dados e um item de menu, deve especificar tanto os critérios de ligação como a propriedade de um elemento de dados a associar. Os critérios indicam quando um elemento de dados deve ser associado a um item do menu. Os critérios podem ser especificados com uma profundidade, um elemento de dados, ou ambos. A profundidade especifica o nível do menu que é atribuído. Por exemplo, se especificar uma profundidade de 0, todos os itens do menu na estrutura da árvore ao nível 0 são atribuídos usando a ligação de itens do menu. Um membro de dados especifica o tipo do elemento de dados na fonte de dados subjacente, mas pode representar informação diferente dependendo da fonte de dados. Por exemplo, o membro de dados de um elemento XML especifica o nome do elemento.

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

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

  2. O MenuItemBinding objeto que define apenas a profundidade.

  3. O MenuItemBinding objeto que define apenas o elemento de dados.

  4. O MenuItemBinding objeto que não define nem a profundidade nem o elemento de dados.

Depois de estabelecidos os critérios de ligação, pode então atribuir uma propriedade de um MenuItem objeto que pode ser associada a um atributo ou campo de um elemento de dados. Por exemplo, pode associar a Text propriedade de um item de menu ao atributo texto de um elemento XML definindo a TextField propriedade de um MenuItemBinding objeto. Também podes atribuir a um valor estático. Se definir a Text propriedade de um MenuItemBinding objeto, todos os itens do menu a que o MenuItemBinding objeto é aplicado partilham o mesmo valor de texto estático. Para mais informações sobre como vincular as propriedades de um MenuItem objeto a um valor, veja MenuItemBinding.

Embora a DataBindings coleção possa ser preenchida programaticamente, normalmente é definida de forma declarativa. Para especificar as ligações dos itens do menu, primeiro as etiquetas de abertura e fechamento <DataBindings> do nest entre as etiquetas de abertura e fecho do Menu controlo. De seguida, coloque <asp:MenuItemBinding> elementos entre as etiquetas de abertura e fecho <DataBindings> para cada ligação de itens do menu que pretende especificar.

Aplica-se a

Ver também