MenuItemBinding Classe
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.
Define a relação entre um elemento de dados e o item do menu ao qual está ligado num Menu controlo. Esta classe não pode ser herdada.
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
- Herança
-
MenuItemBinding
- Implementações
Exemplos
O exemplo de código seguinte demonstra como usar MenuItemBinding objetos 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 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>
O código seguinte é um exemplo de dados de mapa de sítios para o exemplo 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>
Observações
Quando o Menu controlo está associado a uma fonte de dados onde cada elemento contém múltiplos campos (como um elemento XML com vários atributos), se não houver ligações de itens de menu definidas, um elemento de menu mostra 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 do menu, mas não é muito útil de outra forma. Podes associar as propriedades de um item do menu a um campo específico especificando ligações de itens do menu. Um objeto define a relação entre cada elemento de dados e o item do menu ao qual MenuItemBinding está vinculado.
Note
Quando o controlo Menu está atribuído a um controlo SiteMapDataSource , as ligações de itens do menu não têm efeito. A ligação é realizada automaticamente através do fornecedor de mapas do sítio.
O Menu controlo armazena os seus MenuItemBinding objetos na DataBindings propriedade e aplica as ligações à fonte de dados para criar uma relação um-para-um entre a hierarquia do menu e a hierarquia da fonte de dados. Para cada elemento de dados na fonte de dados, o controlo Menu tenta associar o item de dados a um MenuItemBinding objeto para criar o objeto correspondente MenuItem .
Ao criar um MenuItemBinding objeto, deve especificar os critérios de encadernação. Os critérios indicam quando um elemento de dados deve ser associado a um item do menu. Pode especificar o Depth, o DataMember, ou ambos.
A profundidade de um item de menu especifica o nível do menu que é atribuído. Por exemplo, a seguinte MenuItemBinding declaração vincula os campos de Nome e ID da fonte de dados às Text propriedades e Value , respetivamente, de todos os nós com profundidade 0:
<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">
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. Cada elemento de dados numa fonte de dados hierárquica (representada por um IHierarchyData objeto) expõe uma Type propriedade que especifica o tipo do elemento de dados. Por exemplo, o membro de dados de um elemento XML especifica o nome do elemento. Quando uma fonte de dados contém vários tipos de itens de dados, o membro de dados especifica qual o tipo de elemento de dados a utilizar. A seguinte MenuItemBinding declaração vincula os <Book> elementos de um XmlDataSource controlo a todos os itens do menu, independentemente da localização na hierarquia:
<asp:MenuItemBinding DataMember="Book" TextField="Title" ValueField= "ISBN">
Por vezes, pode ser necessário criar uma ligação de itens de menu que especifique tanto uma profundidade como um elemento de dados. Isto é frequentemente usado quando a fonte de dados contém itens em diferentes níveis que têm o mesmo valor de membro dos dados. Por exemplo, podes ter <Item> elementos que aparecem em diferentes níveis dentro de um ficheiro XML. As seguintes MenuItemBinding declarações mostram como especificar ligações de itens de menu que se aplicam a membros de dados idênticos em diferentes profundidades de menu:
<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">
<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">
Se uma ligação a itens do menu for definida sem profundidade e membro de dados, a ligação ao item do menu é aplicada a todos os itens dentro do menu. Isto é frequentemente usado quando todos os itens de dados têm as mesmas propriedades e devem ser apresentados de forma idêntica, independentemente da profundidade do menu.
Depois de estabelecidos os critérios de ligação, pode então atribuir uma propriedade de um MenuItem objeto que pode ser vinculada a um valor. Pode atribuir a um campo de um elemento de dados ou a um valor estático. Quando atribuídos a um valor estático, todos os MenuItem objetos a que o MenuItemBinding objeto é aplicado partilham o mesmo valor. As propriedades associadas a campos contêm os valores do campo correspondente da fonte de dados.
Note
Pode substituir seletivamente uma propriedade limitada num MenuItem objeto definindo diretamente a propriedade correspondente.
A tabela seguinte lista as propriedades da MenuItemBinding classe que permitem associar uma propriedade do MenuItem objeto a um campo de um elemento de dados.
| Property | Description |
|---|---|
| ImageUrlField | O campo a ligar à ImageUrl propriedade de um MenuItem objeto. |
| NavigateUrlField | O campo a ligar à NavigateUrl propriedade de um MenuItem objeto. |
| TextField | O campo a ligar à Text propriedade de um MenuItem objeto. |
| ToolTipField | O campo a ligar à ToolTip propriedade de um MenuItem objeto. |
| ValueField | O campo a ligar à Value propriedade de um MenuItem objeto. |
A tabela seguinte lista as propriedades da MenuItemBinding classe que permitem atribuir uma propriedade do MenuItem objeto a um valor estático.
| Property | Description |
|---|---|
| ImageUrl | O valor estático para se ligar à ImageUrl propriedade de um MenuItem objeto. |
| NavigateUrl | O valor estático para se ligar à NavigateUrl propriedade de um MenuItem objeto. |
| Target | O valor estático para se ligar à Target propriedade de um MenuItem objeto. |
| Text | O valor estático para se ligar à Text propriedade de um MenuItem objeto. |
| ToolTip | O valor estático para se ligar à ToolTip propriedade de um MenuItem objeto. |
| Value | O valor estático para se ligar à Value propriedade de um MenuItem objeto. |
Se objetos em conflito MenuItemBinding forem definidos, o controlo Menu aplica as ligações dos itens do menu na seguinte ordem de precedência:
O MenuItemBinding objeto que define e corresponde tanto a uma profundidade como a um elemento de dados.
O MenuItemBinding objeto que define e corresponde apenas ao membro de dados.
O MenuItemBinding objeto que define e corresponde apenas à profundidade.
O MenuItemBinding objeto que não define nem a profundidade nem o elemento de dados. (Este tipo de atribuição de itens do menu é aplicado a todos os itens do menu no menu.)
O MenuItemBinding objeto que não tem correspondência na fonte de dados. Neste caso, o valor devolvido pelo
ToString()método do elemento de dados é então associado Text às propriedades e Value dos itens do menu aos quais o MenuItemBinding objeto é aplicado.
A MenuItemBinding classe também permite formatar o texto exibido num item do menu ao definir a FormatString propriedade.
Construtores
| Name | Description |
|---|---|
| MenuItemBinding() |
Inicializa uma nova instância da MenuItemBinding classe. |
Propriedades
| Name | Description |
|---|---|
| DataMember |
Obtém ou define o membro de dados para se ligar a um item do menu. |
| Depth |
Obtém ou define a profundidade do menu a que o MenuItemBinding objeto é aplicado. |
| Enabled |
Recebe ou define um valor que indica se o item do menu ao qual o MenuItemBinding objeto é aplicado está ativado, permitindo que o item apresente uma imagem pop-out e quaisquer itens filhos do menu. |
| EnabledField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Enabled propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| FormatString |
Obtém ou define a cadeia que especifica o formato de exibição do texto de um item do menu ao qual o MenuItemBinding objeto é aplicado. |
| ImageUrl |
Obtém ou define a URL para uma imagem que é exibida ao lado do texto de um item do menu ao qual o MenuItemBinding objeto é aplicado. |
| ImageUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à ImageUrl propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| NavigateUrl |
Obtém ou define o URL para ligar quando um item do menu ao qual o MenuItemBinding objeto é aplicado é clicado. |
| NavigateUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à NavigateUrl propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| PopOutImageUrl |
Recebe ou define a URL para uma imagem que indica a presença de um submenu dinâmico para um item do menu ao qual o MenuItemBinding objeto é aplicado. |
| PopOutImageUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à PopOutImageUrl propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| Selectable |
Recebe ou define um valor que indica se o item do menu ao qual o MenuItemBinding objeto é aplicado pode ser selecionado, ou se é "clicável". |
| SelectableField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Selectable propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| SeparatorImageUrl |
Recebe ou define a URL para uma imagem exibida abaixo do texto de um item do menu (para o separar de outros itens do menu) para um item do menu ao qual o MenuItemBinding objeto é aplicado. |
| SeparatorImageUrlField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à SeparatorImageUrl propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| Target |
Obtém ou define a janela ou frame-alvo onde exibir o conteúdo da página Web associado a um item de menu ao qual o MenuItemBinding objeto é aplicado. |
| TargetField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Target propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| Text |
Recebe ou define o texto apresentado para o item do menu ao qual o MenuItemBinding objeto é aplicado. |
| TextField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Text propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| ToolTip |
Recebe ou define o texto ToolTip para um item do menu ao qual o MenuItemBinding objeto é aplicado. |
| ToolTipField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à ToolTip propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
| Value |
Recebe ou define um valor não exibido usado para armazenar quaisquer dados adicionais sobre um item do menu ao qual o MenuItemBinding objeto é aplicado, como dados usados para gerir eventos de postback. |
| ValueField |
Obtém ou define o nome do campo a partir da fonte de dados para se associar à Value propriedade de um MenuItem objeto ao qual o MenuItemBinding objeto é aplicado. |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| ICloneable.Clone() |
Cria uma cópia do MenuItemBinding objeto. |
| IDataSourceViewSchemaAccessor.DataSourceViewSchema |
Para uma descrição deste elemento, veja DataSourceViewSchema. |
| IStateManager.IsTrackingViewState |
Recebe um valor que indica se o MenuItemBinding objeto está a guardar alterações ao seu estado de visualização. |
| IStateManager.LoadViewState(Object) |
Carrega o estado de visualização previamente guardado do nó. |
| IStateManager.SaveViewState() |
Guarda as alterações de estado da vista para um Object. |
| IStateManager.TrackViewState() |
Instrui o MenuItemBinding objeto a acompanhar alterações ao seu estado de visualização. |
Aplica-se a
Ver também
- 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