MenuItemBinding.DataMember Propriedade

Definição

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

public string DataMember { get; set; }

Valor da propriedade

String

O membro de dados a ser associado a um item de menu. O padrão é uma cadeia de caracteres vazia (""), que indica que essa propriedade não está definida.

Exemplos

O exemplo de código a seguir demonstra como usar a DataMember propriedade para especificar qual elemento XML associar aos 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 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>

O código a seguir é dados de mapa de site de exemplo para o exemplo 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>

Comentários

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 a Depth propriedade, a DataMember propriedade ou ambos.

Quando a fonte de dados contiver vários elementos ou tabelas, use a DataMember propriedade para especificar o elemento ou tabela a ser associado a um item de menu. 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 System.Web.UI.IHierarchyData objeto) expõe uma IHierarchyData.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. 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 ou 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 a campos contêm os valores do campo da fonte de dados.

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.

Aplica-se a

Confira também