Menu.DataBindings Właściwość

Definicja

Pobiera kolekcję MenuItemBinding obiektów, które definiują relację między elementem danych i elementem menu, do którego jest wiązane.

public:
 property System::Web::UI::WebControls::MenuItemBindingCollection ^ DataBindings { System::Web::UI::WebControls::MenuItemBindingCollection ^ get(); };
[System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)]
public System.Web.UI.WebControls.MenuItemBindingCollection DataBindings { get; }
[<System.Web.UI.PersistenceMode(System.Web.UI.PersistenceMode.InnerProperty)>]
member this.DataBindings : System.Web.UI.WebControls.MenuItemBindingCollection
Public ReadOnly Property DataBindings As MenuItemBindingCollection

Wartość właściwości

Element MenuItemBindingCollection reprezentujący relację między elementem danych a elementem menu, z którą jest wiązany.

Atrybuty

Przykłady

W poniższym przykładzie kodu pokazano, jak używać DataBindings kolekcji do definiowania relacji między polami XmlDataSource kontrolki a elementami menu w kontrolce Menu . Aby ten przykład działał poprawnie, należy skopiować przykładowe dane XML poniżej do pliku o nazwie Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
       <DataBindings>
        
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.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>Menu DataBindings Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>Menu DataBindings Example</h3>
    
      <asp:menu id="NavigationMenu"
        staticdisplaylevels="1"
        staticsubmenuindent="10" 
        orientation="Vertical"
        target="_blank"
        datasourceid="MenuSource"
        runat="server">
        
        <DataBindings>
          <asp:menuitembinding datamember="MapHomeNode" 
            depth="0"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="1"
            textfield="title" 
            navigateurlfield="url"/>
          <asp:menuitembinding datamember="MapNode" 
            depth="2"
            textfield="title" 
            navigateurlfield="url"/>
        </DataBindings>
        
      </asp:menu>
      
      <asp:XmlDataSource id="MenuSource"
        datafile="Map.xml"
        runat="server"/>        

    </form>
  </body>
</html>

Poniżej przedstawiono przykładowe dane mapy witryny dla poprzedniego przykładu.

<MapHomeNode url="~\Home.aspx"   
  title="Home"  
  description="Home">  
  <MapNode url="~\Music.aspx"  
    title="Music"  
    description="Music">  
    <MapNode url="~\Classical.aspx"   
      title="Classical"  
      description="Classical"/>  
    <MapNode url="~\Rock.aspx"  
      title="Rock"  
      description="Rock"/>  
    <MapNode url="~\Jazz.aspx"  
      title="Jazz"  
      description="Jazz"/>  
  </MapNode>  
  <MapNode url="~\Movies.aspx"  
    title="Movies"  
    description="Movies">  
    <MapNode url="~\Action.aspx"  
      title="Action"  
      description="Action"/>  
    <MapNode url="~\Drama.aspx"  
      title="Drama"  
      description="Drama"/>  
    <MapNode url="~\Musical.aspx"  
      title="Musical"  
      description="Musical"/>  
  </MapNode>  
</MapHomeNode>  

Uwagi

Kolekcja DataBindings zawiera MenuItemBinding obiekty definiujące relację między elementem danych a elementem menu, z którym jest wiązane. W przypadku powiązania ze źródłem danych, w którym każdy element danych zawiera wiele właściwości (takich jak element XML z kilkoma atrybutami), element menu wyświetla wartość zwracaną przez ToString() metodę elementu danych domyślnie. W przypadku elementu XML element menu wyświetla nazwę elementu, który pokazuje podstawową strukturę drzewa, ale nie jest bardzo przydatny w przeciwnym razie. Element menu można powiązać z określoną właściwością elementu danych, określając powiązania elementów menu.

Podczas definiowania relacji między elementem danych a elementem menu należy określić zarówno kryteria powiązania, jak i właściwość elementu danych do powiązania. Kryteria wskazują, kiedy element danych powinien być powiązany z elementem menu. Kryteria można określić za pomocą głębokości, elementu członkowskiego danych lub obu tych elementów. Głębokość określa poziom menu, który jest powiązany. Jeśli na przykład określisz głębokość 0, wszystkie elementy menu w strukturze drzewa na poziomie 0 są powiązane przy użyciu powiązania elementu menu. Element członkowski danych określa typ elementu danych w bazowym źródle danych, ale może reprezentować różne informacje w zależności od źródła danych. Na przykład element członkowski danych dla elementu XML określa nazwę elementu.

Jeśli zdefiniowano wiele MenuItemBinding obiektów, które powodują konflikt ze sobą, kontrolka Menu stosuje powiązania elementów menu w następującej kolejności pierwszeństwa:

  1. MenuItemBinding Obiekt, który definiuje zarówno głębokość, jak i element członkowski danych.

  2. Obiekt MenuItemBinding , który definiuje tylko głębokość.

  3. MenuItemBinding Obiekt, który definiuje tylko element członkowski danych.

  4. MenuItemBinding Obiekt, który definiuje ani głębokość, ani składową danych.

Po ustanowieniu kryteriów powiązania można powiązać właściwość MenuItem obiektu, który może być powiązany z atrybutem lub polem elementu danych. Na przykład można powiązać Text właściwość elementu menu z atrybutem tekstowym w elemencie XML, ustawiając TextField właściwość MenuItemBinding obiektu. Można również powiązać z wartością statyczną. Jeśli ustawisz Text właściwość MenuItemBinding obiektu, wszystkie elementy menu, do których MenuItemBinding zastosowano obiekt, współdzielą tę samą statyczną wartość tekstową. Aby uzyskać więcej informacji na temat powiązania właściwości MenuItem obiektu z wartością, zobacz MenuItemBinding.

DataBindings Chociaż kolekcja może być wypełniana programowo, zwykle jest ustawiana deklaratywnie. Aby określić powiązania elementu menu, najpierw zagnieżdżanie i zamykanie tagów między tagami otwierania i zamykania <DataBindings> kontrolki Menu . Następnie umieść <asp:MenuItemBinding> elementy między znacznikami otwierania i zamykania <DataBindings> dla każdego powiązania elementu menu, które chcesz określić.

Dotyczy

Zobacz też