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.Defines the relationship between a data item and the menu item it is binding to in a Menu control. Esta clase no puede heredarse.This class cannot be inherited.

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 utilizar objetos MenuItemBinding para definir la relación entre los campos de un control XmlDataSource y los elementos de menú de un control Menu.The following code example demonstrates how to use MenuItemBinding objects to define the relationship between the fields of an XmlDataSource control and the menu items in a Menu control. Para que este ejemplo funcione correctamente, debe copiar los datos XML de ejemplo siguientes en un archivo denominado menu. Xml.For this example to work correctly, you must copy the sample XML data below to a file named 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 un ejemplo de datos del mapa del sitio para el ejemplo anterior.The following code is sample site map data for the previous example.

<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 control de Menu se enlaza a un origen de datos en el que cada elemento de datos contiene varios campos (por ejemplo, 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 método ToString() del elemento de datos por predeterminada.When the Menu control is bound to a data source where each data item contains multiple fields (such as an XML element with several attributes), if no menu item bindings are defined, a menu item displays the value returned by the ToString() method of the data item by default. 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 en caso contrario.In the case of an XML element, the menu item displays the element name, which shows the underlying structure of the menu, but is not very useful otherwise. Puede enlazar las propiedades de un elemento de menú a un campo específico especificando los enlaces de elementos de menú.You can bind the properties of a menu item to a specific field by specifying menu item bindings. Un objeto MenuItemBinding define la relación entre cada elemento de datos y el elemento de menú al que se enlaza.A MenuItemBinding object defines the relationship between each data item and the menu item it is binding to.

Nota

Cuando el control de Menu se enlaza a un control SiteMapDataSource, los enlaces de elementos de menú no tienen ningún efecto.When the Menu control is bound to a SiteMapDataSource control, menu item bindings have no effect. El enlace se realiza automáticamente mediante el proveedor del mapa del sitio.Binding is performed automatically using the site map provider.

El control Menu almacena sus objetos MenuItemBinding en la propiedad DataBindings y aplica los enlaces al origen de datos para crear una relación de uno a uno entre la jerarquía de menús y la jerarquía de origen de datos.The Menu control stores its MenuItemBinding objects in the DataBindings property and applies the bindings to the data source to create a one-to-one relationship between the menu hierarchy and the data source hierarchy. Para cada elemento de datos del origen de datos, el control Menu intenta hacer coincidir el elemento de datos con un objeto MenuItemBinding para crear el objeto MenuItem correspondiente.For each data item in the data source, the Menu control attempts to match the data item to a MenuItemBinding object to create the corresponding MenuItem object.

Al crear un objeto de MenuItemBinding, debe especificar los criterios de enlace.When creating a MenuItemBinding object, you must specify the criteria for binding. Los criterios indican cuándo se debe enlazar un elemento de datos a un elemento de menú.The criteria indicate when a data item should be bound to a menu item. Puede especificar el Depth, el DataMembero ambos.You can specify the Depth, the DataMember, or both.

La profundidad de un elemento de menú especifica el nivel de menú que se enlaza.A menu item depth specifies the menu level that gets bound. Por ejemplo, la siguiente declaración de MenuItemBinding enlaza los campos de identificador y nombre del origen de datos a las propiedades Text y Value, respectivamente, de todos los nodos con una profundidad de 0:For example, the following MenuItemBinding declaration binds the Name and ID fields of the data source to the Text and Value properties, respectively, of all nodes with a depth of 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.A data member specifies the type of the data item in the underlying data source, but can represent different information depending on the data source. Cada elemento de datos de un origen de datos jerárquico (representado por un objeto IHierarchyData) expone una propiedad Type, que especifica el tipo del elemento de datos.Each data item in a hierarchical data source (represented by an IHierarchyData object) exposes a Type property, which specifies the type of the data item. Por ejemplo, el miembro de datos de un elemento XML especifica el nombre del elemento.For example, the data member for an XML element specifies the name of the element. Cuando un origen de datos contiene varios tipos de elementos de datos, el miembro de datos especifica qué tipo de elemento de datos se va a usar.When a data source contains multiple data item types, the data member specifies which data item type to use. La siguiente declaración de MenuItemBinding enlaza los elementos <Book> de un control XmlDataSource a todos los elementos de menú del menú, independientemente de la ubicación de la jerarquía:The following MenuItemBinding declaration binds the <Book> elements of an XmlDataSource control to all the menu items in the menu, regardless of the location in the hierarchy:

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

En ocasiones, es posible que necesite crear un enlace de elemento de menú que especifique una profundidad y un miembro de datos.Sometimes you might need to create a menu item binding that specifies both a depth and a data member. Se suele usar cuando el origen de datos contiene elementos en diferentes niveles que tienen el mismo valor de miembro de datos.This is often used when the data source contains items at different levels that have the same data member value. Por ejemplo, puede tener <Item> elementos que aparecen en niveles diferentes dentro de un archivo XML.For example, you can have <Item> elements that appear at different levels within an XML file. Las declaraciones de MenuItemBinding siguientes muestran cómo especificar enlaces de elementos de menú que se aplican a miembros de datos idénticos en diferentes profundidades de menú:The following MenuItemBinding declarations show how to specify menu item bindings that apply to identical data members at different menu depths:

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

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

Si un enlace de elemento de menú se define sin una profundidad y un miembro de datos, el enlace del elemento de menú se aplica a todos los elementos de menú en el menú.If a menu item binding is defined without a depth and a data member, the menu item binding is applied to all menu items within the menu. Normalmente se usa cuando todos los elementos de datos tienen las mismas propiedades y deben mostrarse de manera idéntica, independientemente de la profundidad del menú.This is commonly used when all data items have the same properties and should be displayed identically, regardless of the menu depth.

Después de establecer los criterios de enlace, puede enlazar una propiedad de un objeto MenuItem que se pueda enlazar a un valor.After the binding criteria are established, you can then bind a property of a MenuItem object that can be bound to a value. Puede enlazar a un campo de un elemento de datos o a un valor estático.You can bind to a field of a data item or to a static value. Cuando se enlaza a un valor estático, todos los objetos MenuItem a los que se aplica el objeto MenuItemBinding comparten el mismo valor.When bound to a static value, all MenuItem objects to which the MenuItemBinding object is applied share the same value. Las propiedades enlazadas a campos contienen los valores del campo correspondiente del origen de datos.Properties bound to fields contain the values of the corresponding field from the data source.

Nota

Puede reemplazar de forma selectiva una propiedad enlazada en un objeto MenuItem estableciendo la propiedad correspondiente directamente.You can selectively override a bound property in a MenuItem object by setting the corresponding property directly.

En la tabla siguiente se enumeran las propiedades de la clase MenuItemBinding que permiten enlazar una propiedad del objeto MenuItem a un campo de un elemento de datos.The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a field of a data item.

Propiedad.Property DescripciónDescription
ImageUrlField Campo que se va a enlazar a la propiedad ImageUrl de un objeto MenuItem.The field to bind to the ImageUrl property of a MenuItem object.
NavigateUrlField Campo que se va a enlazar a la propiedad NavigateUrl de un objeto MenuItem.The field to bind to the NavigateUrl property of a MenuItem object.
TextField Campo que se va a enlazar a la propiedad Text de un objeto MenuItem.The field to bind to the Text property of a MenuItem object.
ToolTipField Campo que se va a enlazar a la propiedad ToolTip de un objeto MenuItem.The field to bind to the ToolTip property of a MenuItem object.
ValueField Campo que se va a enlazar a la propiedad Value de un objeto MenuItem.The field to bind to the Value property of a MenuItem object.

En la tabla siguiente se enumeran las propiedades de la clase MenuItemBinding que permiten enlazar una propiedad del objeto MenuItem a un valor estático.The following table lists the properties of the MenuItemBinding class that allow you to bind a property of the MenuItem object to a static value.

Propiedad.Property DescripciónDescription
ImageUrl Valor estático que se va a enlazar a la propiedad ImageUrl de un objeto MenuItem.The static value to bind to the ImageUrl property of a MenuItem object.
NavigateUrl Valor estático que se va a enlazar a la propiedad NavigateUrl de un objeto MenuItem.The static value to bind to the NavigateUrl property of a MenuItem object.
Target Valor estático que se va a enlazar a la propiedad Target de un objeto MenuItem.The static value to bind to the Target property of a MenuItem object.
Text Valor estático que se va a enlazar a la propiedad Text de un objeto MenuItem.The static value to bind to the Text property of a MenuItem object.
ToolTip Valor estático que se va a enlazar a la propiedad ToolTip de un objeto MenuItem.The static value to bind to the ToolTip property of a MenuItem object.
Value Valor estático que se va a enlazar a la propiedad Value de un objeto MenuItem.The static value to bind to the Value property of a MenuItem object.

Si se definen objetos MenuItemBinding en conflicto, el control Menu aplica los enlaces de elementos de menú en el siguiente orden de prioridad:If conflicting MenuItemBinding objects are defined, the Menu control applies the menu item bindings in the following order of precedence:

  1. Objeto MenuItemBinding que define y coincide con una profundidad y un miembro de datos.The MenuItemBinding object that defines and matches both a depth and a data member.

  2. Objeto MenuItemBinding que define y coincide solo con el miembro de datos.The MenuItemBinding object that defines and matches the data member only.

  3. Objeto MenuItemBinding que define y coincide solo con la profundidad.The MenuItemBinding object that defines and matches the depth only.

  4. Objeto MenuItemBinding que no define ni la profundidad ni el miembro de datos.The MenuItemBinding object that defines neither the depth nor the data member. (Este tipo de enlace de elementos de menú se aplica a todos los elementos de menú en el menú).(This type of menu item binding is applied to all menu items in the menu.)

  5. Objeto MenuItemBinding que no tiene una coincidencia en el origen de datos.The MenuItemBinding object that does not have a match in the data source. En este caso, el valor devuelto por el método ToString() del elemento de datos se enlaza a las propiedades Text y Value de los elementos de menú a los que se aplica el objeto MenuItemBinding.In this case, the value returned by the ToString() method of the data item is then bound to the Text and Value properties of the menu items to which the MenuItemBinding object is applied.

La clase MenuItemBinding también permite dar formato al texto que se muestra en un elemento de menú estableciendo la propiedad FormatString.The MenuItemBinding class also allows you to format the text displayed in a menu item by setting the FormatString property.

Constructores

MenuItemBinding()

Inicializa una nueva instancia de la clase MenuItemBinding.Initializes a new instance of the MenuItemBinding class.

Propiedades

DataMember

Obtiene o establece el miembro de datos que se va a enlazar al elemento de menú.Gets or sets the data member to bind to a menu item.

Depth

Obtiene o establece la profundidad de menú a la que se aplica el objeto MenuItemBinding.Gets or sets the menu depth to which the MenuItemBinding object is applied.

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.Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied is enabled, allowing the item to display a pop-out image and any child menu items.

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.Gets or sets the name of the field from the data source to bind to the Enabled property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the string that specifies the display format for the text of a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the URL to an image that is displayed next to the text of a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the ImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the URL to link to when a menu item to which the MenuItemBinding object is applied is clicked.

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.Gets or sets the name of the field from the data source to bind to the NavigateUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the URL to an image that indicates the presence of a dynamic submenu for a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the PopOutImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets a value that indicates whether the menu item to which the MenuItemBinding object is applied can be selected, or is "clickable."

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.Gets or sets the name of the field from the data source to bind to the Selectable property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the URL to an image displayed below the text of a menu item (to separate it from other menu items) for a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the SeparatorImageUrl property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the target window or frame in which to display the Web page content associated with a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the Target property of a MenuItem object to which the MenuItemBinding object is applied.

Text

Obtiene o establece el texto que se muestra en el elemento de menú al que se aplica el objeto MenuItemBinding.Gets or sets the text displayed for the menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the Text property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets the ToolTip text for a menu item to which the MenuItemBinding object is applied.

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.Gets or sets the name of the field from the data source to bind to the ToolTip property of a MenuItem object to which the MenuItemBinding object is applied.

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.Gets or sets a nondisplayed value used to store any additional data about a menu item to which the MenuItemBinding object is applied, such as data used for handling postback events.

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.Gets or sets the name of the field from the data source to bind to the Value property of a MenuItem object to which the MenuItemBinding object is applied.

Métodos

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

Implementaciones de interfaz explícitas

ICloneable.Clone()

Crea una copia del objeto MenuItemBinding .Creates a copy of the MenuItemBinding object.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Para una descripción de este miembro, vea DataSourceViewSchema.For a description of this member, see DataSourceViewSchema.

IStateManager.IsTrackingViewState

Obtiene un valor que indica si el objeto MenuItemBinding está guardando los cambios en su estado de vista.Gets a value that indicates whether the MenuItemBinding object is saving changes to its view state.

IStateManager.LoadViewState(Object)

Carga el estado de vista previamente guardado del nodo.Loads the node's previously saved view state.

IStateManager.SaveViewState()

Guarda los cambios del estado de vista de un objeto Object.Saves the view state changes to an Object.

IStateManager.TrackViewState()

Indica al objeto MenuItemBinding que efectúe el seguimiento de los cambios de su estado de vista.Instructs the MenuItemBinding object to track changes to its view state.

Se aplica a

Consulte también: