Partilhar via


MenuItemBinding Classe

Definição

Define a relação entre um item de dados e o item de menu ao qual ele está associando em um controle Menu. Essa 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 a seguir demonstra como usar MenuItemBinding objetos para definir a relação entre os campos de um XmlDataSource controle e os itens de menu em um Menu controle. Para que este exemplo funcione corretamente, você deve copiar os dados XML de exemplo abaixo para um arquivo 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 a seguir é dados de mapa de site de exemplo 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>

Comentários

Quando o Menu controle é associado a uma fonte de dados em que cada item de dados contém vários campos (como um elemento XML com vários atributos), se nenhuma associação de item de menu for definida, um item de menu exibirá o valor retornado pelo ToString() método do item de dados por padrão. No caso de um elemento XML, o item de menu exibe o nome do elemento, que mostra a estrutura subjacente do menu, mas não é muito útil de outra forma. Você pode associar as propriedades de um item de menu a um campo específico especificando associações de item de menu. Um MenuItemBinding objeto define a relação entre cada item de dados e o item de menu ao qual ele está associando.

Observação

Quando o Menu controle está associado a um SiteMapDataSource controle, as associações de item de menu não têm efeito. A associação é executada automaticamente usando o provedor de mapa do site.

O Menu controle armazena seus MenuItemBinding objetos na DataBindings propriedade e aplica as associações à fonte de dados para criar uma relação um-para-um entre a hierarquia de menus e a hierarquia da fonte de dados. Para cada item de dados na fonte de dados, o Menu controle tenta corresponder o item de dados a um MenuItemBinding objeto para criar o objeto correspondente MenuItem .

Ao criar um MenuItemBinding objeto, você deve especificar os critérios de associação. Os critérios indicam quando um item de dados deve ser associado a um item de menu. Você pode especificar o Depth, o DataMemberou ambos.

Uma profundidade de item de menu especifica o nível de menu que é associado. Por exemplo, a seguinte MenuItemBinding declaração associa os campos Nome e ID da fonte de dados às propriedades e Value aos Text nós, respectivamente, de todos os nós com uma profundidade de 0:

<asp:MenuItemBinding Depth="0" TextField="Name" ValueField="ID">  

Um membro de dados especifica o tipo do item de dados na fonte de dados subjacente, mas pode representar informações diferentes dependendo da fonte de dados. Cada item de dados em uma fonte de dados hierárquica (representado por um IHierarchyData objeto) expõe uma Type propriedade, que especifica o tipo do item 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 item de dados, o membro de dados especifica qual tipo de item de dados usar. A declaração a seguir MenuItemBinding associa os <Book> elementos de um XmlDataSource controle a todos os itens de menu no menu, independentemente do local na hierarquia:

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

Às vezes, talvez seja necessário criar uma associação de item de menu que especifique uma profundidade e um membro de dados. Isso geralmente é usado quando a fonte de dados contém itens em diferentes níveis que têm o mesmo valor de membro de dados. Por exemplo, você pode ter <Item> elementos que aparecem em diferentes níveis dentro de um arquivo XML. As seguintes MenuItemBinding declarações mostram como especificar associações de item 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 associação de item de menu for definida sem uma profundidade e um membro de dados, a associação de item de menu será aplicada a todos os itens de menu no menu. Isso geralmente é usado quando todos os itens de dados têm as mesmas propriedades e devem ser exibidos de forma idêntica, independentemente da profundidade do menu.

Depois que os critérios de associação forem estabelecidos, você poderá associar uma propriedade de um MenuItem objeto que pode ser associada a um valor. Você pode associar a um campo de um item de dados ou a um valor estático. Quando associado a um valor estático, todos os MenuItem objetos aos quais o MenuItemBinding objeto é aplicado compartilham o mesmo valor. As propriedades associadas aos campos contêm os valores do campo correspondente da fonte de dados.

Observação

Você pode substituir seletivamente uma propriedade associada em um MenuItem objeto definindo a propriedade correspondente diretamente.

A tabela a seguir lista as propriedades da MenuItemBinding classe que permitem associar uma propriedade do objeto a MenuItem um campo de um item de dados.

Propriedade Descrição
ImageUrlField O campo a ser associado à ImageUrl propriedade de um MenuItem objeto.
NavigateUrlField O campo a ser associado à NavigateUrl propriedade de um MenuItem objeto.
TextField O campo a ser associado à Text propriedade de um MenuItem objeto.
ToolTipField O campo a ser associado à ToolTip propriedade de um MenuItem objeto.
ValueField O campo a ser associado à Value propriedade de um MenuItem objeto.

A tabela a seguir lista as propriedades da MenuItemBinding classe que permitem associar uma propriedade do objeto a MenuItem um valor estático.

Propriedade Descrição
ImageUrl O valor estático a ser associado à ImageUrl propriedade de um MenuItem objeto.
NavigateUrl O valor estático a ser associado à NavigateUrl propriedade de um MenuItem objeto.
Target O valor estático a ser associado à Target propriedade de um MenuItem objeto.
Text O valor estático a ser associado à Text propriedade de um MenuItem objeto.
ToolTip O valor estático a ser associado à ToolTip propriedade de um MenuItem objeto.
Value O valor estático a ser associado à Value propriedade de um MenuItem objeto.

Se objetos conflitantes MenuItemBinding forem definidos, o Menu controle aplicará as associações de item de menu na seguinte ordem de precedência:

  1. O MenuItemBinding objeto que define e corresponde a uma profundidade e a um membro de dados.

  2. O MenuItemBinding objeto que define e corresponde somente ao membro de dados.

  3. O MenuItemBinding objeto que define e corresponde somente à profundidade.

  4. O MenuItemBinding objeto que não define nem a profundidade nem o membro de dados. (Esse tipo de associação de item de menu é aplicado a todos os itens de menu no menu.)

  5. O MenuItemBinding objeto que não tem uma correspondência na fonte de dados. Nesse caso, o valor retornado pelo ToString() método do item de dados é associado às Text propriedades e Value aos itens de menu aos quais o MenuItemBinding objeto é aplicado.

A MenuItemBinding classe também permite formatar o texto exibido em um item de menu definindo a FormatString propriedade.

Construtores

MenuItemBinding()

Inicializa uma nova instância da classe MenuItemBinding.

Propriedades

DataMember

Obtém ou define o membro de dados a ser associado a um item de menu.

Depth

Obtém ou define a profundidade do menu ao qual o objeto MenuItemBinding é aplicado.

Enabled

Obtém ou define um valor que indica se o item de menu ao qual o objeto MenuItemBinding é aplicado está habilitado, permitindo que o item exiba uma imagem pop-out e os itens de menu filho.

EnabledField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Enabled de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

FormatString

Obtém ou define a cadeia de caracteres que especifica o formato de exibição do texto de um item de menu ao qual o objeto MenuItemBinding é aplicado.

ImageUrl

Obtém ou define a URL para uma imagem que é exibida ao lado do texto de um item de menu ao qual o objeto MenuItemBinding é aplicado.

ImageUrlField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade ImageUrl de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

NavigateUrl

Obtém ou define a URL a ser vinculada quando um item de menu ao qual objeto MenuItemBinding é aplicado for clicado.

NavigateUrlField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade NavigateUrl de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

PopOutImageUrl

Obtém ou define a URL para uma imagem que indica a presença de um submenu dinâmico para um item de menu ao qual o objeto MenuItemBinding está aplicado.

PopOutImageUrlField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade PopOutImageUrl de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

Selectable

Obtém ou define um valor que indica se o item de menu ao qual o objeto MenuItemBinding está aplicado pode ser selecionado ou está "clicável".

SelectableField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Selectable de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

SeparatorImageUrl

Obtém ou define a URL para uma imagem exibida abaixo do texto de um item de menu (para separá-lo de outros itens de menu) para um item de menu ao qual o objeto MenuItemBinding está aplicado.

SeparatorImageUrlField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade SeparatorImageUrl de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

Target

Obtém ou define a janela ou o quadro de destino no qual será exibido o conteúdo da página da Web associado a um item de menu ao qual o objeto MenuItemBinding está aplicado.

TargetField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Target de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

Text

Obtém ou define o texto exibido para o item de menu ao qual o objeto MenuItemBinding está aplicado.

TextField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Text de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

ToolTip

Obtém ou define o texto de dica de ferramenta de um item de menu ao qual o objeto MenuItemBinding está aplicado.

ToolTipField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade ToolTip de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

Value

Obtém ou define um valor não exibido usado para armazenar dados adicionais sobre um item de menu ao qual o objeto MenuItemBinding está aplicado, como os dados usados para tratar eventos de postback.

ValueField

Obtém ou define o nome do campo da fonte de dados a ser associado à propriedade Value de um objeto MenuItem ao qual o objeto MenuItemBinding é aplicado.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

Implantações explícitas de interface

ICloneable.Clone()

Cria uma cópia do objeto MenuItemBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Para obter uma descrição desse membro, confira DataSourceViewSchema.

IStateManager.IsTrackingViewState

Obtém um valor que indica se o objeto MenuItemBinding está salvando as alterações no estado de exibição.

IStateManager.LoadViewState(Object)

Carrega o estado de exibição do nó salvo anteriormente.

IStateManager.SaveViewState()

Salva as alterações ao estado de exibição em um Object.

IStateManager.TrackViewState()

Instrui o objeto MenuItemBinding a acompanhar as alterações em seu estado de exibição.

Aplica-se a

Confira também