Menu.DataBindings Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém uma coleção de MenuItemBinding objetos que definem a relação entre um elemento de dados e o item do menu ao qual está ligado.
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 Propriedade
A que representa a relação entre um elemento de dados e o item do menu ao qual MenuItemBindingCollection está vinculado.
- Atributos
Exemplos
O exemplo de código seguinte demonstra como usar a DataBindings coleção para definir a relação entre os campos de um XmlDataSource controlo e os itens do menu num Menu controlo. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo abaixo para um ficheiro chamado 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>
Segue-se um exemplo de dados de mapa de sítios para o exemplo 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>
Observações
A DataBindings coleção contém MenuItemBinding objetos que definem a relação entre um elemento de dados e o item do menu ao qual está vinculado. Ao ligar a uma fonte de dados onde cada elemento contém múltiplas propriedades (como um elemento XML com vários atributos), um elemento de menu apresenta o valor devolvido pelo ToString() método do elemento de dados por defeito. No caso de um elemento XML, o elemento do menu mostra o nome do elemento, que mostra a estrutura subjacente da árvore, mas não é muito útil de outra forma. Pode associar um item de menu a uma propriedade específica de item de dados especificando ligações de itens de menu.
Ao definir a relação entre um elemento de dados e um item de menu, deve especificar tanto os critérios de ligação como a propriedade de um elemento de dados a associar. Os critérios indicam quando um elemento de dados deve ser associado a um item do menu. Os critérios podem ser especificados com uma profundidade, um elemento de dados, ou ambos. A profundidade especifica o nível do menu que é atribuído. Por exemplo, se especificar uma profundidade de 0, todos os itens do menu na estrutura da árvore ao nível 0 são atribuídos usando a ligação de itens do menu. Um membro de dados especifica o tipo do elemento de dados na fonte de dados subjacente, mas pode representar informação diferente dependendo da fonte de dados. Por exemplo, o membro de dados de um elemento XML especifica o nome do elemento.
Se forem definidos múltiplos MenuItemBinding objetos que entram em conflito, o controlo Menu aplica as ligações dos itens do menu na seguinte ordem de precedência:
O MenuItemBinding objeto que define tanto uma profundidade como um elemento de dados.
O MenuItemBinding objeto que define apenas a profundidade.
O MenuItemBinding objeto que define apenas o elemento de dados.
O MenuItemBinding objeto que não define nem a profundidade nem o elemento de dados.
Depois de estabelecidos os critérios de ligação, pode então atribuir uma propriedade de um MenuItem objeto que pode ser associada a um atributo ou campo de um elemento de dados. Por exemplo, pode associar a Text propriedade de um item de menu ao atributo texto de um elemento XML definindo a TextField propriedade de um MenuItemBinding objeto. Também podes atribuir a um valor estático. Se definir a Text propriedade de um MenuItemBinding objeto, todos os itens do menu a que o MenuItemBinding objeto é aplicado partilham o mesmo valor de texto estático. Para mais informações sobre como vincular as propriedades de um MenuItem objeto a um valor, veja MenuItemBinding.
Embora a DataBindings coleção possa ser preenchida programaticamente, normalmente é definida de forma declarativa. Para especificar as ligações dos itens do menu, primeiro as etiquetas de abertura e fechamento <DataBindings> do nest entre as etiquetas de abertura e fecho do Menu controlo. De seguida, coloque <asp:MenuItemBinding> elementos entre as etiquetas de abertura e fecho <DataBindings> para cada ligação de itens do menu que pretende especificar.