Condividi tramite


MenuItemBinding Classe

Definizione

Definisce la relazione tra un elemento dati e la voce di menu a cui è associato in un controllo Menu. La classe non può essere ereditata.

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
Ereditarietà
MenuItemBinding
Implementazioni

Esempio

Nell'esempio di codice seguente viene illustrato come usare MenuItemBinding oggetti per definire la relazione tra i campi di un XmlDataSource controllo e le voci di menu in un Menu controllo. Per il corretto funzionamento di questo esempio, è necessario copiare i dati XML di esempio seguenti in un file denominato 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>

Il codice seguente è i dati della mappa del sito di esempio per l'esempio precedente.

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

Commenti

Quando il controllo è associato a un'origine Menu dati in cui ogni elemento dati contiene più campi (ad esempio un elemento XML con diversi attributi), se non vengono definite associazioni di voci di menu, una voce di menu visualizza il valore restituito dal metodo dell'elemento ToString() di dati per impostazione predefinita. Nel caso di un elemento XML, la voce di menu visualizza il nome dell'elemento, che mostra la struttura sottostante del menu, ma non è molto utile in caso contrario. È possibile associare le proprietà di una voce di menu a un campo specifico specifica specificando associazioni di voci di menu. Un MenuItemBinding oggetto definisce la relazione tra ogni elemento di dati e la voce di menu a cui si associa.

Nota

Quando il Menu controllo è associato a un SiteMapDataSource controllo, le associazioni di voci di menu non hanno alcun effetto. L'associazione viene eseguita automaticamente usando il provider di mappe del sito.

Il Menu controllo archivia MenuItemBinding gli oggetti nella DataBindings proprietà e applica le associazioni all'origine dati per creare una relazione uno-a-uno tra la gerarchia dei menu e la gerarchia dell'origine dati. Per ogni elemento di dati nell'origine dati, il Menu controllo tenta di associare l'elemento di dati a un MenuItemBinding oggetto per creare l'oggetto corrispondente MenuItem .

Quando si crea un MenuItemBinding oggetto, è necessario specificare i criteri per l'associazione. I criteri indicano quando un elemento dati deve essere associato a una voce di menu. È possibile specificare Depth, o DataMemberentrambi.

Una profondità della voce di menu specifica il livello di menu associato. Ad esempio, la dichiarazione seguente MenuItemBinding associa i campi Name e ID dell'origine dati alle Text proprietà e Value , rispettivamente, di tutti i nodi con una profondità di 0:

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

Un membro dati specifica il tipo dell'elemento di dati nell'origine dati sottostante, ma può rappresentare informazioni diverse a seconda dell'origine dati. Ogni elemento di dati in un'origine dati gerarchica (rappresentata da un IHierarchyData oggetto) espone una Type proprietà, che specifica il tipo dell'elemento di dati. Ad esempio, il membro dati per un elemento XML specifica il nome dell'elemento. Quando un'origine dati contiene più tipi di elemento di dati, il membro dati specifica il tipo di elemento di dati da usare. La dichiarazione seguente MenuItemBinding associa gli <Book> elementi di un XmlDataSource controllo a tutte le voci di menu nel menu, indipendentemente dalla posizione nella gerarchia:

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

A volte potrebbe essere necessario creare un'associazione di voci di menu che specifica sia una profondità che un membro dati. Questa operazione viene spesso usata quando l'origine dati contiene elementi a livelli diversi con lo stesso valore del membro dati. Ad esempio, è possibile disporre <Item> di elementi visualizzati a livelli diversi all'interno di un file XML. Le dichiarazioni seguenti MenuItemBinding illustrano come specificare associazioni di voci di menu che si applicano a membri di dati identici a profondità di menu diverse:

<asp:MenuItemBinding DataMember="Item" Depth="1" TextField="Title">

<asp:MenuItemBinding DataMember="Item" Depth="2" TextField="ISBN">

Se un'associazione di voci di menu è definita senza profondità e un membro dati, l'associazione delle voci di menu viene applicata a tutte le voci di menu all'interno del menu. Questa operazione viene comunemente usata quando tutti gli elementi dati hanno le stesse proprietà e devono essere visualizzati in modo identico, indipendentemente dalla profondità del menu.

Dopo aver stabilito i criteri di associazione, è quindi possibile associare una proprietà di un MenuItem oggetto che può essere associato a un valore. È possibile associare a un campo di un elemento di dati o a un valore statico. Se associato a un valore statico, tutti gli MenuItem oggetti a cui viene applicato l'oggetto MenuItemBinding condividono lo stesso valore. Le proprietà associate ai campi contengono i valori del campo corrispondente dall'origine dati.

Nota

È possibile eseguire l'override selettiva di una proprietà associata in un MenuItem oggetto impostando direttamente la proprietà corrispondente.

Nella tabella seguente sono elencate le proprietà della MenuItemBinding classe che consentono di associare una proprietà dell'oggetto MenuItem a un campo di un elemento dati.

Proprietà Descrizione
ImageUrlField Campo da associare alla ImageUrl proprietà di un MenuItem oggetto.
NavigateUrlField Campo da associare alla NavigateUrl proprietà di un MenuItem oggetto.
TextField Campo da associare alla Text proprietà di un MenuItem oggetto.
ToolTipField Campo da associare alla ToolTip proprietà di un MenuItem oggetto.
ValueField Campo da associare alla Value proprietà di un MenuItem oggetto.

Nella tabella seguente sono elencate le proprietà della MenuItemBinding classe che consentono di associare una proprietà dell'oggetto MenuItem a un valore statico.

Proprietà Descrizione
ImageUrl Valore statico da associare alla ImageUrl proprietà di un MenuItem oggetto.
NavigateUrl Valore statico da associare alla NavigateUrl proprietà di un MenuItem oggetto.
Target Valore statico da associare alla Target proprietà di un MenuItem oggetto.
Text Valore statico da associare alla Text proprietà di un MenuItem oggetto.
ToolTip Valore statico da associare alla ToolTip proprietà di un MenuItem oggetto.
Value Valore statico da associare alla Value proprietà di un MenuItem oggetto.

Se vengono definiti oggetti in conflitto MenuItemBinding , il Menu controllo applica le associazioni di voci di menu nell'ordine di precedenza seguente:

  1. Oggetto MenuItemBinding che definisce e corrisponde sia a una profondità che a un membro dati.

  2. Oggetto MenuItemBinding che definisce e corrisponde solo al membro dati.

  3. Oggetto MenuItemBinding che definisce e corrisponde solo alla profondità.

  4. Oggetto MenuItemBinding che definisce né la profondità né il membro dati. Questo tipo di associazione di voci di menu viene applicata a tutte le voci di menu nel menu.

  5. Oggetto MenuItemBinding che non ha una corrispondenza nell'origine dati. In questo caso, il valore restituito dal ToString() metodo dell'elemento di dati viene quindi associato alle Text proprietà e Value delle voci di menu a cui viene applicato l'oggetto MenuItemBinding .

La MenuItemBinding classe consente inoltre di formattare il testo visualizzato in una voce di menu impostando la FormatString proprietà.

Costruttori

MenuItemBinding()

Inizializza una nuova istanza della classe MenuItemBinding.

Proprietà

DataMember

Ottiene o imposta il membro dati da associare a una voce di menu.

Depth

Ottiene o imposta la profondità del menu a cui l'oggetto MenuItemBinding è applicato.

Enabled

Ottiene o imposta un valore che indica se la voce di menu a cui è applicato l'oggetto MenuItemBinding è abilitata in modo da poter visualizzare un'immagine popout e tutte le voci di menu figlio.

EnabledField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Enabled di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

FormatString

Ottiene o imposta la stringa che specifica il formato di visualizzazione del testo di una voce di menu a cui viene applicato l'oggetto MenuItemBinding.

ImageUrl

Ottiene o imposta l'URL di un'immagine visualizzata accanto al testo di una voce di menu a cui viene applicato l'oggetto MenuItemBinding.

ImageUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà ImageUrl di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

NavigateUrl

Ottiene o imposta l'URL a cui collegarsi quando si fa clic su una voce di menu a cui è applicato l'oggetto MenuItemBinding.

NavigateUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà NavigateUrl di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

PopOutImageUrl

Ottiene o imposta l'URL di un'immagine che indica la presenza di un sottomenu dinamico per una voce di menu a cui è applicato l'oggetto MenuItemBinding.

PopOutImageUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà PopOutImageUrl di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

Selectable

Ottiene o imposta un valore che indica se la voce di menu a cui è applicato l'oggetto MenuItemBinding può essere selezionata, ovvero se è possibile fare clic su di essa.

SelectableField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Selectable di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

SeparatorImageUrl

Ottiene o imposta l'URL di un'immagine visualizzata al di sotto del testo di una voce di menu (per separarla dalle altre voci di menu) per una voce di menu a cui è applicato l'oggetto MenuItemBinding.

SeparatorImageUrlField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà SeparatorImageUrl di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

Target

Ottiene o imposta la finestra o il frame di destinazione in cui visualizzare il contenuto della pagina Web associato a una voce di menu a cui è applicato l'oggetto MenuItemBinding.

TargetField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Target di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

Text

Ottiene o imposta il testo visualizzato per la voce di menu a cui è applicato l'oggetto MenuItemBinding.

TextField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Text di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

ToolTip

Ottiene o imposta il testo della descrizione comandi per una voce di menu a cui è applicato l'oggetto MenuItemBinding.

ToolTipField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà ToolTip di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

Value

Ottiene o imposta un valore non visualizzato utilizzato per memorizzare dati aggiuntivi relativi a una voce di menu a cui è applicato l'oggetto MenuItemBinding, ad esempio i dati utilizzati per la gestione degli eventi di postback.

ValueField

Ottiene o imposta il nome del campo dall'origine dati per l'associazione alla proprietà Value di un oggetto MenuItem a cui è applicato l'oggetto MenuItemBinding.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

Implementazioni dell'interfaccia esplicita

ICloneable.Clone()

Crea una copia dell'oggetto MenuItemBinding.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Per una descrizione di questo membro, vedere DataSourceViewSchema.

IStateManager.IsTrackingViewState

Ottiene un valore che indica se l'oggetto MenuItemBinding salva le modifiche apportate al relativo stato di visualizzazione.

IStateManager.LoadViewState(Object)

Carica lo stato di visualizzazione precedentemente salvato del nodo.

IStateManager.SaveViewState()

Salva le modifiche apportate allo stato di visualizzazione in un oggetto Object.

IStateManager.TrackViewState()

Indica all'oggetto MenuItemBinding di tenere traccia delle modifiche apportate allo stato di visualizzazione.

Si applica a

Vedi anche