MenuItemBinding.DataMember Propiedad
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í.
Obtiene o establece el miembro de datos que se va a enlazar al elemento de menú.
public:
property System::String ^ DataMember { System::String ^ get(); void set(System::String ^ value); };
public string DataMember { get; set; }
member this.DataMember : string with get, set
Public Property DataMember As String
Valor de propiedad
Miembro de datos que se va a enlazar al elemento de menú. El valor predeterminado es una cadena vacía (""), lo que indica que no se ha establecido esta propiedad.
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la DataMember propiedad para especificar qué elemento XML se va a enlazar a 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 MenuDataMember.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 DataMember Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItemBinding DataMember Example</h3>
<asp:menu id="NavigationMenu"
datasourceid="MenuSource"
runat="server">
<databindings>
<asp:menuitembinding datamember="MapNodeHome"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_self" />
<asp:menuitembinding datamember="MapNodeCategory"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
<asp:menuitembinding datamember="MapNodeSection"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
</databindings>
</asp:menu>
<asp:xmldatasource id="MenuSource"
datafile="MenuDataMember.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 DataMember Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>MenuItemBinding DataMember Example</h3>
<asp:menu id="NavigationMenu"
datasourceid="MenuSource"
runat="server">
<databindings>
<asp:menuitembinding datamember="MapNodeHome"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_self" />
<asp:menuitembinding datamember="MapNodeCategory"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
<asp:menuitembinding datamember="MapNodeSection"
textfield="Title"
valuefield="Description"
imageurlfield="ImageUrl"
tooltipfield="ToolTip"
target="_blank"/>
</databindings>
</asp:menu>
<asp:xmldatasource id="MenuSource"
datafile="MenuDataMember.xml"
runat="server"/>
</form>
</body>
</html>
El código siguiente es datos de mapa de sitio de ejemplo para el ejemplo anterior.
<MapNodeHome ImageUrl="~\Images\Home.gif"
Title="Home"
Description="Root Page"
ToolTip="Home Page">
<MapNodeCategory ImageUrl="~\Images\Music.gif"
Title="Music"
Description="Music Category"
ToolTip="Music Page">
<MapNodeSection ImageUrl="~\Images\Classical.gif"
Title="Classical"
Description="Classical Section"
ToolTip="Classical Page"/>
<MapNodeSection ImageUrl="~\Images\Rock.gif"
Title="Rock"
Description="Rock Section"
ToolTip="Rock Page"/>
<MapNodeSection ImageUrl="~\Images\Jazz.gif"
Title="Jazz"
Description="Jazz Section"
ToolTip="Jazz Page"/>
</MapNodeCategory>
<MapNodeCategory ImageUrl="~\Images\Movies.gif"
Title="Movies"
Description="Movies Category"
ToolTip="Movies Page">
<MapNodeSection ImageUrl="~\Images\Action.gif"
Title="Action"
Description="Action Section"
ToolTip="Action Page"/>
<MapNodeSection ImageUrl="~\Images\Drama.gif"
Title="Drama"
Description="Drama Section"
ToolTip="Drama Page"/>
<MapNodeSection ImageUrl="~\Images\Musical.gif"
Title="Musical"
Description="Musical Section"
ToolTip="Musical Page"/>
</MapNodeCategory>
</MapNodeHome>
Comentarios
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 la Depth propiedad, la DataMember propiedad o ambos.
Cuando el origen de datos contiene varios elementos o tablas, utilice la DataMember propiedad para especificar el elemento o tabla que se va a enlazar a un elemento 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 en función del origen de datos. Cada elemento de datos de un origen de datos jerárquico (representado por un System.Web.UI.IHierarchyData objeto) expone una IHierarchyData.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. 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 o 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 del origen de datos.
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.