MenuItemBinding.DataMember Propriedade

Definição

Obtém ou define o membro de dados para se ligar a um item do menu.

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 Propriedade

O membro de dados para associar a um item do menu. O padrão é uma cadeia vazia (""), o que indica que esta propriedade não está definida.

Exemplos

O exemplo de código seguinte demonstra como usar a DataMember propriedade para especificar qual elemento XML atribuir aos itens do menu num Menu controlo. Para que este exemplo funcione corretamente, deve copiar os dados XML de exemplo abaixo para um ficheiro 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>

<%@ 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>

O código seguinte é um exemplo de dados de mapa de sítios 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>

Observações

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

Quando a fonte de dados contém múltiplos elementos ou tabelas, use a DataMember propriedade para especificar o elemento ou tabela a atribuir a um item 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. Cada elemento de dados numa fonte de dados hierárquica (representada 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 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 ou membro de dados, a ligação aos itens 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. Propriedades vinculadas a campos contêm os valores do campo da fonte de dados.

Se objetos em conflito MenuItemBinding forem definidos, o controlo Menu aplica as ligações dos itens do menu na seguinte ordem de precedência:

  1. O MenuItemBinding objeto que define e corresponde tanto a uma profundidade como a um elemento de dados.

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

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

  4. 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.)

  5. 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.

Aplica-se a

Ver também