MenuItemBinding Clase

Definición

Define la relación entre un elemento de datos y el elemento de menú al que enlaza en un control Menu. Esta clase no puede heredarse.

public ref class MenuItemBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class MenuItemBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type MenuItemBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class MenuItemBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Herencia
MenuItemBinding
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar MenuItemBinding objetos 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 Menu.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 Example</title>
</head>
<body>
    <form id="form1" runat="server">

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

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

      <h3>MenuItemBinding Example</h3>

      <asp:menu id="NavigationMenu"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode"
            formatstring="({0})" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_self" />
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            formatstring="[{0}]" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            formatstring="<{0}>" 
            textfield="Title"
            valuefield="Description"
            imageurlfield="ImageUrl"
            tooltipfield="ToolTip"
            target="_blank"/>
          
        </DataBindings>
        
      </asp:menu>

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

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

El código siguiente es datos de mapa de sitio de ejemplo para el ejemplo anterior.

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

</MapHomeNode>

Comentarios

Cuando el Menu control está enlazado a un origen de datos donde cada elemento de datos contiene varios campos (como un elemento XML con varios atributos), si no se definen enlaces de elementos de menú, 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 menú, pero no es muy útil de lo contrario. Puede enlazar las propiedades de un elemento de menú a un campo específico especificando enlaces de elementos de menú. Un MenuItemBinding objeto define la relación entre cada elemento de datos y el elemento de menú al que está enlazando.

Nota

Cuando el Menu control está enlazado a un SiteMapDataSource control, los enlaces de elementos de menú no tienen ningún efecto. El enlace se realiza automáticamente mediante el proveedor de mapa del sitio.

El Menu control almacena sus MenuItemBinding objetos en la DataBindings propiedad y aplica los enlaces al origen de datos para crear una relación uno a uno entre la jerarquía de menús y la jerarquía del origen de datos. Para cada elemento de datos del origen de datos, el Menu control intenta hacer coincidir el elemento de datos con un MenuItemBinding objeto para crear el objeto correspondiente MenuItem .

Al crear un MenuItemBinding objeto, debe especificar los criterios para el enlace. Los criterios indican cuándo se debe enlazar un elemento de datos a un elemento de menú. Puede especificar , Depth, DataMembero ambos.

Una profundidad de elemento de menú especifica el nivel de menú que se enlaza. Por ejemplo, la siguiente MenuItemBinding declaración enlaza los campos Name e ID del origen de datos a las Text propiedades y Value , respectivamente, de todos los nodos con una profundidad de 0:

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

Un miembro de datos especifica el tipo del elemento de datos en el origen de datos subyacente, pero puede representar información diferente en función del origen de datos. Cada elemento de datos de un origen de datos jerárquico (representado por un IHierarchyData objeto) expone una Type propiedad , que especifica el tipo del elemento de datos. Por ejemplo, el miembro de datos de un elemento XML especifica el nombre del elemento. Cuando un origen de datos contiene varios tipos de elementos de datos, el miembro de datos especifica el tipo de elemento de datos que se va a usar. La siguiente MenuItemBinding declaración enlaza los <Book> elementos de un XmlDataSource control a todos los elementos de menú del menú, independientemente de la ubicación de la jerarquía:

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

A veces, es posible que tenga que crear un enlace de elementos de menú que especifique una profundidad y un miembro de datos. A menudo se usa cuando el origen de datos contiene elementos en distintos niveles que tienen el mismo valor de miembro de datos. Por ejemplo, puede tener <Item> elementos que aparecen en distintos niveles dentro de un archivo XML. Las declaraciones siguientes MenuItemBinding muestran cómo especificar enlaces de elementos de menú que se aplican a miembros de datos idénticos en diferentes profundidades de menú:

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

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

Si se define un enlace de elementos de menú sin una profundidad y un miembro de datos, el enlace de elementos de menú se aplica a todos los elementos de menú del menú. Esto se usa normalmente cuando todos los elementos de datos tienen las mismas propiedades y deben mostrarse de forma idéntica, independientemente de la profundidad del menú.

Una vez establecidos los criterios de enlace, puede enlazar una propiedad de un MenuItem objeto que se puede enlazar a un valor. Puede enlazar a un campo de un elemento de datos o a un valor estático. Cuando se enlaza a un valor estático, todos los objetos a los MenuItem que se aplica el MenuItemBinding objeto comparten el mismo valor. Las propiedades enlazadas a campos contienen los valores del campo correspondiente del origen de datos.

Nota

Puede invalidar selectivamente una propiedad enlazada en un MenuItem objeto estableciendo la propiedad correspondiente directamente.

En la tabla siguiente se enumeran las propiedades de la MenuItemBinding clase que permiten enlazar una propiedad del MenuItem objeto a un campo de un elemento de datos.

Propiedad Descripción
ImageUrlField Campo que se va a enlazar a la ImageUrl propiedad de un MenuItem objeto .
NavigateUrlField Campo que se va a enlazar a la NavigateUrl propiedad de un MenuItem objeto .
TextField Campo que se va a enlazar a la Text propiedad de un MenuItem objeto .
ToolTipField Campo que se va a enlazar a la ToolTip propiedad de un MenuItem objeto .
ValueField Campo que se va a enlazar a la Value propiedad de un MenuItem objeto .

En la tabla siguiente se enumeran las propiedades de la MenuItemBinding clase que permiten enlazar una propiedad del MenuItem objeto a un valor estático.

Propiedad Descripción
ImageUrl Valor estático que se va a enlazar a la ImageUrl propiedad de un MenuItem objeto .
NavigateUrl Valor estático que se va a enlazar a la NavigateUrl propiedad de un MenuItem objeto .
Target Valor estático que se va a enlazar a la Target propiedad de un MenuItem objeto .
Text Valor estático que se va a enlazar a la Text propiedad de un MenuItem objeto .
ToolTip Valor estático que se va a enlazar a la ToolTip propiedad de un MenuItem objeto .
Value Valor estático que se va a enlazar a la Value propiedad de un MenuItem objeto .

Si se definen objetos en conflicto MenuItemBinding , el Menu control aplica los enlaces de elementos de menú en el siguiente orden de precedencia:

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

  2. Objeto MenuItemBinding que define y coincide solo con el miembro de datos.

  3. Objeto MenuItemBinding que define y coincide solo con la profundidad.

  4. Objeto MenuItemBinding que define ni la profundidad ni el miembro de datos. (Este tipo de enlace de elementos de menú se aplica a todos los elementos de menú del menú).

  5. Objeto MenuItemBinding que no tiene una coincidencia en el origen de datos. En este caso, el valor devuelto por el ToString() método del elemento de datos se enlaza a las Text propiedades y Value de los elementos de menú a los que se aplica el MenuItemBinding objeto.

La MenuItemBinding clase también permite dar formato al texto que se muestra en un elemento de menú estableciendo la FormatString propiedad .

Constructores

MenuItemBinding()

Inicializa una nueva instancia de la clase MenuItemBinding.

Propiedades

DataMember

Obtiene o establece el miembro de datos que se va a enlazar al elemento de menú.

Depth

Obtiene o establece la profundidad de menú a la que se aplica el objeto MenuItemBinding.

Enabled

Obtiene o establece un valor que indica si está habilitado el elemento de menú al que se aplica el objeto MenuItemBinding, lo que permite que el elemento muestre una imagen emergente y los elementos de menú secundarios.

EnabledField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad Enabled de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

FormatString

Obtiene o establece la cadena que especifica el formato de presentación del texto de un elemento de menú en el que se aplica el objeto MenuItemBinding.

ImageUrl

Obtiene o establece la dirección URL de una imagen que se muestra al lado del texto de un elemento de menú al que se aplica el objeto MenuItemBinding.

ImageUrlField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad ImageUrl de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

NavigateUrl

Obtiene o establece la dirección URL a la que se debe vincular al hacer clic en un elemento de menú al que se aplica el objeto MenuItemBinding.

NavigateUrlField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad NavigateUrl de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

PopOutImageUrl

Obtiene o establece la dirección URL de una imagen que indica la existencia de un submenú dinámico en un elemento de menú al que se aplica el objeto MenuItemBinding.

PopOutImageUrlField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad PopOutImageUrl de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

Selectable

Obtiene o establece un valor que indica si el elemento de menú al que se aplica el objeto MenuItemBinding se puede seleccionar, es decir, si se puede hacer clic en él.

SelectableField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad Selectable de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

SeparatorImageUrl

Obtiene o establece la dirección URL de una imagen que se muestra debajo del texto de un elemento de menú (para separarlo de otros elementos de menú) al que se aplica el objeto MenuItemBinding.

SeparatorImageUrlField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad SeparatorImageUrl de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

Target

Obtiene o establece la ventana o marco de destino en que se debe mostrar el contenido de página Web asociado a un elemento de menú al que se aplica el objeto MenuItemBinding.

TargetField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad Target de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

Text

Obtiene o establece el texto que se muestra en el elemento de menú al que se aplica el objeto MenuItemBinding.

TextField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad Text de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

ToolTip

Obtiene o establece el texto de información sobre herramientas que se muestra en el elemento de menú al que se aplica el objeto MenuItemBinding.

ToolTipField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad ToolTip de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

Value

Obtiene o establece un valor no mostrado que se utiliza para almacenar datos adicionales sobre un elemento de menú al que se aplica el objeto MenuItemBinding; los datos se pueden utilizar, por ejemplo, para controlar eventos de postback.

ValueField

Obtiene o establece el nombre del campo del origen de datos que se debe enlazar a la propiedad Value de un objeto MenuItem al que se aplica el objeto MenuItemBinding.

Métodos

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.

Implementaciones de interfaz explícitas

ICloneable.Clone()

Crea una copia del objeto MenuItemBinding .

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Para obtener una descripción de este miembro, vea DataSourceViewSchema.

IStateManager.IsTrackingViewState

Obtiene un valor que indica si el objeto MenuItemBinding está guardando los cambios en su estado de vista.

IStateManager.LoadViewState(Object)

Carga el estado de vista previamente guardado del nodo.

IStateManager.SaveViewState()

Guarda los cambios del estado de vista de un objeto Object.

IStateManager.TrackViewState()

Indica al objeto MenuItemBinding que efectúe el seguimiento de los cambios de su estado de vista.

Se aplica a

Consulte también