MenuItemBinding Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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:
Objeto MenuItemBinding que define y coincide con una profundidad y un miembro de datos.
Objeto MenuItemBinding que define y coincide solo con el miembro de datos.
Objeto MenuItemBinding que define y coincide solo con la profundidad.
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ú).
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
- Menu
- MenuItem
- MenuItemBindingCollection
- AccessDataSource
- ObjectDataSource
- SiteMapDataSource
- SqlDataSource
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrl
- ImageUrlField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- ValueField