Compartir a través de


Menu.DataBindings Propiedad

Definición

Obtiene una colección de objetos MenuItemBinding que definen la relación entre un elemento de datos y el elemento de menú al que enlaza.

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 propiedad

MenuItemBindingCollection que representa la relación entre un elemento de datos y el elemento de menú al que enlaza.

Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la DataBindings colección para definir la relación entre los campos de un XmlDataSource control y los elementos de menú de un Menu control. Para que este ejemplo funcione correctamente, debe copiar los datos XML de ejemplo siguientes en un archivo denominado 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>

A continuación se incluyen datos de mapa del sitio de ejemplo para el ejemplo 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>  

Comentarios

La DataBindings colección contiene MenuItemBinding objetos que definen la relación entre un elemento de datos y el elemento de menú al que está enlazando. Cuando se enlaza a un origen de datos donde cada elemento de datos contiene varias propiedades (como un elemento XML con varios atributos), un elemento de menú muestra el valor devuelto por el ToString() método del elemento de datos de forma predeterminada. En el caso de un elemento XML, el elemento de menú muestra el nombre del elemento, que muestra la estructura subyacente del árbol, pero no es muy útil en caso contrario. Puede enlazar un elemento de menú a una propiedad de elemento de datos específica especificando enlaces de elementos de menú.

Al definir la relación entre un elemento de datos y un elemento de menú, debe especificar los criterios de enlace y la propiedad de un elemento de datos al que se va a enlazar. Los criterios indican cuándo se debe enlazar un elemento de datos a un elemento de menú. Los criterios se pueden especificar con una profundidad, un miembro de datos o ambos. La profundidad especifica el nivel de menú que se enlaza. Por ejemplo, si especifica una profundidad de 0, todos los elementos de menú de la estructura de árbol en el nivel 0 se enlazan mediante el enlace de elementos de menú. Un miembro de datos especifica el tipo del elemento de datos en el origen de datos subyacente, pero puede representar información diferente según el origen de datos. Por ejemplo, el miembro de datos de un elemento XML especifica el nombre del elemento.

Si se definen varios MenuItemBinding objetos que entran en conflicto entre sí, el Menu control aplica los enlaces de elementos de menú en el orden de prioridad siguiente:

  1. Objeto MenuItemBinding que define una profundidad y un miembro de datos.

  2. Objeto MenuItemBinding que define solo la profundidad.

  3. Objeto MenuItemBinding que define solo el miembro de datos.

  4. Objeto MenuItemBinding que define ni la profundidad ni el miembro de datos.

Una vez establecidos los criterios de enlace, puede enlazar una propiedad de un MenuItem objeto que pueda enlazarse a un atributo o campo de un elemento de datos. Por ejemplo, puede enlazar la Text propiedad de un elemento de menú al atributo de texto de un elemento XML estableciendo la TextField propiedad de un MenuItemBinding objeto . También puede enlazar a un valor estático. Si establece la Text propiedad de un MenuItemBinding objeto, todos los elementos de menú a los que se aplica el MenuItemBinding objeto comparten el mismo valor de texto estático. Para obtener más información sobre cómo enlazar las propiedades de un MenuItem objeto a un valor, vea MenuItemBinding.

Aunque la DataBindings colección se puede rellenar mediante programación, normalmente se establece mediante declaración. Para especificar los enlaces de elementos de menú, anida primero las etiquetas de apertura y cierre <DataBindings> entre las etiquetas de apertura y cierre del Menu control. A continuación, coloque <asp:MenuItemBinding> los elementos entre las etiquetas de apertura y cierre <DataBindings> para cada enlace de elementos de menú que desee especificar.

Se aplica a

Consulte también