TreeNodeBinding Klasa

Definicja

Definiuje relację między elementem danych a węzłem, z który jest wiązany w kontrolce TreeView .

public ref class TreeNodeBinding sealed : ICloneable, System::Web::UI::IDataSourceViewSchemaAccessor, System::Web::UI::IStateManager
public sealed class TreeNodeBinding : ICloneable, System.Web.UI.IDataSourceViewSchemaAccessor, System.Web.UI.IStateManager
type TreeNodeBinding = class
    interface IStateManager
    interface ICloneable
    interface IDataSourceViewSchemaAccessor
Public NotInheritable Class TreeNodeBinding
Implements ICloneable, IDataSourceViewSchemaAccessor, IStateManager
Dziedziczenie
TreeNodeBinding
Implementuje

Przykłady

W poniższej tabeli przedstawiono przykładowe deklaracje powiązań węzłów drzewa.

Przykładowe powiązanie Opis
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Text Tworzy powiązanie właściwości i Value wszystkich węzłów w drzewie odpowiednio z Title polami i ID źródła danych. Wszystkie węzły używają tej deklaracji powiązania węzła drzewa, ponieważ DataMember właściwości i Depth nie są ustawione.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Text Tworzy powiązanie właściwości i Value wszystkich węzłów w drzewie z Title polami Book i ID elementu danych w źródle danych.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Text Tworzy powiązanie właściwości i Value wszystkich węzłów z głębokością 2 w drzewie odpowiednio z Title polami i ID elementu danych w źródle danych.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Text Tworzy powiązanie właściwości i Value wszystkich węzłów z głębokością 2 w drzewie odpowiednio z Title polami Book i ID elementu danych w źródle danych. Wiąże ImageUrl również właściwość węzłów z wartością statyczną.

Ta sekcja zawiera trzy przykłady kodu. W pierwszym przykładzie kodu pokazano, jak deklaratywnie używać TreeNodeBinding obiektów do definiowania relacji między węzłem a elementem danych. W drugim przykładzie kodu pokazano, jak programowo używać TreeNodeBinding obiektów do definiowania relacji między węzłem a elementem danych. Trzeci przykład kodu zawiera przykładowe dane XML dla pierwszych i drugich przykładów kodu.

W poniższym przykładzie kodu pokazano, jak deklaratywnie używać TreeNodeBinding obiektów do definiowania relacji między węzłem a elementem danych. Aby ten przykład działał poprawnie, należy skopiować przykładowe dane XML podane po tym przykładzie kodu do pliku o nazwie Book.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>TreeView XML Data Binding Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView XML Data Binding Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </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>TreeView XML Data Binding Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView XML Data Binding Example</h3>
    
      <asp:TreeView id="BookTreeView" 
        DataSourceID="BookXmlDataSource"
        runat="server">
         
        <DataBindings>
          <asp:TreeNodeBinding DataMember="Book" TextField="Title"/>
          <asp:TreeNodeBinding DataMember="Chapter" TextField="Heading"/>
          <asp:TreeNodeBinding DataMember="Section" TextField="Heading"/>
        </DataBindings>
         
      </asp:TreeView>

      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
    
    </form>
  </body>
</html>

W poniższym przykładzie kodu pokazano, jak programowo używać TreeNodeBinding obiektów do definiowania relacji między węzłem a elementem danych. Aby ten przykład działał poprawnie, należy skopiować przykładowe dane XML podane w następnym przykładzie kodu do pliku o nazwie Book.xml.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

  void Page_Load(Object sender, EventArgs e)
  {

    // Create a new TreeView control.
    TreeView NewTree = new TreeView();

    // Set the properties of the TreeView control.
    NewTree.ID = "BookTreeView";
    NewTree.DataSourceID = "BookXmlDataSource";

    // Create the tree node binding relationship.

    // Create the root node binding.
    TreeNodeBinding RootBinding = new TreeNodeBinding();
    RootBinding.DataMember = "Book";
    RootBinding.TextField = "Title";

    // Create the parent node binding.
    TreeNodeBinding ParentBinding = new TreeNodeBinding();
    ParentBinding.DataMember = "Chapter";
    ParentBinding.TextField = "Heading";

    // Create the leaf node binding.
    TreeNodeBinding LeafBinding = new TreeNodeBinding();
    LeafBinding.DataMember = "Section";
    LeafBinding.TextField = "Heading";

    // Add bindings to the DataBindings collection.
    NewTree.DataBindings.Add(RootBinding);
    NewTree.DataBindings.Add(ParentBinding); 
    NewTree.DataBindings.Add(LeafBinding);

    // Manually register the event handler for the SelectedNodeChanged event.
    NewTree.SelectedNodeChanged += new EventHandler(this.Node_Change);

    // Add the TreeView control to the Controls collection of the PlaceHolder control.
    ControlPlaceHolder.Controls.Add(NewTree);

  }

  void Node_Change(Object sender, EventArgs e)
  {

    // Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
    TreeView LocalTree = (TreeView)ControlPlaceHolder.FindControl("BookTreeView");

    // Display the selected node.
    Message.Text = "You selected: " + LocalTree.SelectedNode.Text;

  }

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Constructor Example</h3>
      
      <asp:PlaceHolder id="ControlPlaceHolder" runat="server">
      </asp:PlaceHolder>
   
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      
      <br /><br />
      
      <asp:Label id="Message" 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">
<script runat="server">

  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    ' Create a new TreeView control.
    Dim NewTree As New TreeView

    ' Set the properties of the TreeView control.
    NewTree.ID = "BookTreeView"
    NewTree.DataSourceID = "BookXmlDataSource"

    ' Create the tree node binding relationship.

    ' Create the root node binding.
    Dim RootBinding As New TreeNodeBinding
    RootBinding.DataMember = "Book"
    RootBinding.TextField = "Title"

    ' Create the parent node binding.
    Dim ParentBinding As New TreeNodeBinding
    ParentBinding.DataMember = "Chapter"
    ParentBinding.TextField = "Heading"

    ' Create the leaf node binding.
    Dim LeafBinding As New TreeNodeBinding
    LeafBinding.DataMember = "Section"
    LeafBinding.TextField = "Heading"

    ' Add bindings to the DataBindings collection.
    NewTree.DataBindings.Add(RootBinding)
    NewTree.DataBindings.Add(ParentBinding)
    NewTree.DataBindings.Add(LeafBinding)

    ' Manually register the event handler for the SelectedNodeChanged event.
    AddHandler NewTree.SelectedNodeChanged, AddressOf Node_Change

    ' Add the TreeView control to the Controls collection of the PlaceHolder control.
    ControlPlaceHolder.Controls.Add(NewTree)

  End Sub

  Sub Node_Change(ByVal sender As Object, ByVal e As EventArgs)

    ' Retrieve the TreeView control from the Controls collection of the PlaceHolder control.
    Dim LocalTree As TreeView = CType(ControlPlaceHolder.FindControl("BookTreeView"), TreeView)

    ' Display the selected node.
    Message.Text = "You selected: " & LocalTree.SelectedNode.Text

  End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head runat="server">
    <title>TreeView Constructor Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Constructor Example</h3>
      
      <asp:PlaceHolder id="ControlPlaceHolder" runat="server">
      </asp:PlaceHolder>
   
      <asp:XmlDataSource id="BookXmlDataSource"  
        DataFile="Book.xml"
        runat="server">
      </asp:XmlDataSource>
      
      <br /><br />
      
      <asp:Label id="Message" runat="server"/>
    
    </form>
  </body>
</html>

Poniższy przykład kodu zawiera przykładowe dane XML dla powyższych przykładów kodu.

<Book Title="Book Title">  
    <Chapter Heading="Chapter 1">  
        <Section Heading="Section 1">  
        </Section>  
        <Section Heading="Section 2">  
        </Section>  
    </Chapter>  
    <Chapter Heading="Chapter 2">  
        <Section Heading="Section 1">  
        </Section>  
    </Chapter>  
</Book>  

Uwagi

Gdy kontrolka TreeView jest powiązana ze źródłem danych, w którym każdy element danych zawiera wiele pól (takich jak element XML z kilkoma atrybutami), węzeł domyślnie wyświetla wartość zwracaną przez ToString metodę elementu danych. W przypadku elementu XML węzeł wyświetla nazwę elementu, który pokazuje podstawową strukturę drzewa, ale nie jest bardzo przydatny w przeciwnym razie. Właściwości węzła można powiązać z określonym polem, określając powiązania węzła drzewa. Obiekt TreeNodeBinding definiuje relację między poszczególnymi elementami danych a węzłem, z którymi jest powiązanie.

Kontrolka TreeView przechowuje swoje TreeNodeBinding obiekty we DataBindings właściwości i stosuje powiązania do źródła danych w celu utworzenia relacji jeden do jednego między hierarchią drzewa a hierarchią źródła danych. Dla każdego elementu danych w źródle danych kontrolka TreeView próbuje dopasować element danych do TreeNodeBinding obiektu w celu utworzenia odpowiedniego TreeNode obiektu.

Podczas tworzenia TreeNodeBinding obiektu należy określić kryteria powiązania. Kryteria wskazują, kiedy element danych powinien być powiązany z węzłem. Można określić Depth właściwość lub DataMember albo obie właściwości. Istnieje niewielki wzrost wydajności, określając oba te elementy. Głębokość węzła określa poziom węzła, który jest powiązany. Na przykład następująca TreeNodeBinding deklaracja wiąże Name pola i ID źródła danych z Text właściwościami i Value , odpowiednio, ze wszystkimi węzłami o głębokości 0:

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

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. Każdy element danych w hierarchicznym źródle danych (reprezentowanym System.Web.UI.IHierarchyData przez interfejs) uwidacznia IHierarchyData.Type właściwość, która określa typ elementu danych. Na przykład element członkowski danych elementu XML określa nazwę elementu. Gdy źródło danych zawiera wiele typów elementów danych, element członkowski danych określa typ elementu danych do użycia. Następująca TreeNodeBinding deklaracja wiąże <Book> elementy kontrolki XmlDataSource ze wszystkimi węzłami w drzewie, niezależnie od lokalizacji w hierarchii:

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

Po ustanowieniu kryteriów powiązania można powiązać właściwość TreeNode obiektu, który może być powiązany z wartością. Można powiązać z polem elementu danych lub z wartością statyczną. Po powiązaniu z wartością statyczną wszystkie TreeNode obiekty, do których TreeNodeBinding zastosowano obiekt, mają taką samą wartość.

Uwaga

Właściwość powiązana w TreeNode obiekcie można selektywnie zastąpić, ustawiając odpowiednią właściwość bezpośrednio w węźle.

W poniższej tabeli wymieniono właściwości TreeNodeBinding klasy, które umożliwiają powiązanie właściwości TreeNode obiektu z polem elementu danych.

Właściwość Opis
ImageUrlField Pole, które ma być powiązane z ImageUrl właściwością TreeNode obiektu.
ImageToolTipField Pole, które ma być powiązane z ImageToolTip właściwością TreeNode obiektu.
NavigateUrlField Pole, które ma być powiązane z NavigateUrl właściwością TreeNode obiektu.
TextField Pole, które ma być powiązane z Text właściwością TreeNode obiektu.
ToolTipField Pole, które ma być powiązane z ToolTip właściwością TreeNode obiektu.
ValueField Pole, które ma być powiązane z Value właściwością TreeNode obiektu.

W poniższej tabeli wymieniono właściwości TreeNodeBinding klasy, które umożliwiają powiązanie właściwości TreeNode obiektu z wartością statyczną.

Właściwość Opis
ImageUrl Wartość statyczna, która ma być powiązana z ImageUrl właściwością TreeNode obiektu.
ImageToolTip Wartość statyczna, która ma być powiązana z ImageToolTip właściwością TreeNode obiektu.
NavigateUrl Wartość statyczna, która ma być powiązana z NavigateUrl właściwością TreeNode obiektu.
PopulateOnDemand Wartość statyczna, która ma być powiązana z PopulateOnDemand właściwością TreeNode obiektu.
SelectAction Wartość statyczna, która ma być powiązana z SelectAction właściwością TreeNode obiektu.
ShowCheckBox Wartość statyczna, która ma być powiązana z ShowCheckBox właściwością TreeNode obiektu.
Target Wartość statyczna, która ma być powiązana z Target właściwością TreeNode obiektu.
Text Wartość statyczna, która ma być powiązana z Text właściwością TreeNode obiektu.
ToolTip Wartość statyczna, która ma być powiązana z ToolTip właściwością TreeNode obiektu.
Value Wartość statyczna, która ma być powiązana z Value właściwością TreeNode obiektu.

Jeśli obiekty powodujące konflikt TreeNodeBinding są zdefiniowane, kontrolka TreeView stosuje powiązania węzła drzewa w następującej kolejności pierwszeństwa:

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

  2. Obiekt TreeNodeBinding , który definiuje i pasuje tylko do elementu członkowskiego danych.

  3. Obiekt TreeNodeBinding , który definiuje i dopasuje tylko głębokość.

  4. Obiekt TreeNodeBinding , który nie definiuje ani głębokości, ani elementu członkowskiego danych. (Ten typ powiązania węzła drzewa jest stosowany do wszystkich węzłów w drzewie).

  5. Obiekt TreeNodeBinding , który nie ma dopasowania w źródle danych. W takim przypadku wartość zwracana przez ToString metodę elementu danych jest następnie powiązana z Text właściwościami i Value węzłów, do których TreeNodeBinding jest stosowany obiekt.

Klasa TreeNodeBinding umożliwia również formatowanie tekstu wyświetlanego w węźle przez ustawienie FormatString właściwości .

Konstruktory

TreeNodeBinding()

Inicjuje nowe wystąpienie klasy TreeNodeBinding.

Właściwości

DataMember

Pobiera lub ustawia wartość zgodną z właściwością Type elementu danych, aby określić, czy zastosować powiązanie węzła drzewa.

Depth

Pobiera lub ustawia głębokość węzła TreeNodeBinding , w której jest stosowany obiekt.

FormatString

Pobiera lub ustawia ciąg określający format wyświetlania dla tekstu węzła, do którego TreeNodeBinding jest stosowany obiekt.

ImageToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla obrazu wyświetlanego obok węzła, do którego TreeNodeBinding jest stosowany obiekt.

ImageToolTipField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z ImageToolTip właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

ImageUrl

Pobiera lub ustawia adres URL obrazu wyświetlanego obok węzła, do którego TreeNodeBinding jest stosowany obiekt.

ImageUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania ImageUrl z właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

NavigateUrl

Pobiera lub ustawia adres URL, do którego ma być link po kliknięciu TreeNodeBinding węzła, do którego jest stosowany obiekt.

NavigateUrlField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania NavigateUrl z właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

PopulateOnDemand

Pobiera lub ustawia wartość wskazującą, czy węzeł, do którego TreeNodeBinding jest stosowany obiekt, jest wypełniany dynamicznie.

SelectAction

Pobiera lub ustawia zdarzenie lub zdarzenia, które mają być wywoływane po wybraniu węzła TreeNodeBinding , do którego jest stosowany obiekt.

ShowCheckBox

Pobiera lub ustawia wartość wskazującą, czy pole wyboru jest wyświetlane obok węzła, do którego TreeNodeBinding jest stosowany obiekt.

Target

Pobiera lub ustawia okno docelowe lub ramkę, w której ma być wyświetlana zawartość strony sieci Web skojarzona z węzłem, do którego TreeNodeBinding zastosowano obiekt.

TargetField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania z Target właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

Text

Pobiera lub ustawia tekst wyświetlany dla węzła, do którego TreeNodeBinding jest stosowany obiekt.

TextField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania Text z właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

ToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla węzła TreeNodeBinding , do którego jest stosowany obiekt.

ToolTipField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania ToolTip z właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

Value

Pobiera lub ustawia wyświetlaną wartość, która nie jest wyświetlana, ale służy do przechowywania dodatkowych danych dotyczących węzła, do którego TreeNodeBinding jest stosowany obiekt, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego.

ValueField

Pobiera lub ustawia nazwę pola ze źródła danych w celu powiązania Value z właściwością TreeNode obiektu, do którego TreeNodeBinding jest stosowany obiekt.

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

DataMember Zwraca właściwość .

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy kopię TreeNodeBinding obiektu.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Aby uzyskać opis tego elementu członkowskiego, zobacz DataSourceViewSchema.

IStateManager.IsTrackingViewState

Aby uzyskać opis tego elementu członkowskiego, zobacz IsTrackingViewState.

IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku dla węzła.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w obiekcie.

IStateManager.TrackViewState()

Instruuje TreeNode obiekt w celu śledzenia zmian w stanie widoku.

Dotyczy

Zobacz też