Sdílet prostřednictvím


TreeNodeBinding Třída

Definice

Definuje vztah mezi datovou položkou a uzlem, se kterou je v ovládacím prvku svázání 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
Dědičnost
TreeNodeBinding
Implementuje

Příklady

Následující tabulka ukazuje ukázkové deklarace vazeb uzlů stromu.

Příklad vazby Description
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Vytvoří vazbu a TextValue vlastnosti všech uzlů ve stromu na Title pole ID zdroje dat. Všechny uzly používají deklaraci vazby uzlu stromu, protože DataMember vlastnosti Depth nejsou nastaveny.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Vytvoří vazbu a TextValue vlastnosti všech uzlů ve stromu na Title pole IDBook datové položky ve zdroji dat.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Sváže vlastnosti Text všech Value uzlů s hloubkou 2 ve stromu a TitleID poli datové položky ve zdroji dat.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Sváže vlastnosti Text všech Value uzlů s hloubkou 2 ve stromu a TitleID poli Book datové položky ve zdroji dat. Také vytvoří vazbu ImageUrl vlastnosti uzlů na statickou hodnotu.

Tato část obsahuje tři příklady kódu. První příklad kódu ukazuje, jak pomocí TreeNodeBinding objektů deklarativní definovat vztah mezi uzlem a datovou položkou. Druhý příklad kódu ukazuje, jak pomocí TreeNodeBinding objektů programově definovat vztah mezi uzlem a datovou položkou. Třetí příklad kódu poskytuje ukázková data XML pro první a druhý příklad kódu.

Následující příklad kódu ukazuje, jak pomocí TreeNodeBinding objektů deklarativní definovat vztah mezi uzlem a datovou položkou. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML zadanou po tomto příkladu kódu do souboru s názvem 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>

Následující příklad kódu ukazuje, jak pomocí TreeNodeBinding objektů programově definovat vztah mezi uzlem a datovou položkou. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML, která jsou uvedena v dalším příkladu kódu do souboru s názvem 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>

Následující příklad kódu poskytuje ukázková data XML pro předchozí příklady kódu.

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

Poznámky

TreeView Pokud je ovládací prvek vázán na zdroj dat, kde každá položka dat obsahuje více polí (například xml element s několika atributy), uzel zobrazí hodnotu vrácenou metodou ToString datové položky ve výchozím nastavení. V případě elementu XML zobrazí uzel název elementu, který zobrazuje základní strukturu stromu, ale není velmi užitečné jinak. Vlastnosti uzlu můžete svázat s určitým polem zadáním vazeb uzlů stromu. Objekt TreeNodeBinding definuje vztah mezi každou datovou položkou a uzlem, ke kterému je vázán.

Ovládací TreeView prvek ukládá své TreeNodeBinding objekty do DataBindings vlastnosti a použije vazby na zdroj dat k vytvoření relace 1:1 mezi stromovou hierarchií a hierarchií zdroje dat. Pro každou položku dat ve zdroji TreeView dat se ovládací prvek pokusí shodovat datovou položku s objektem TreeNodeBinding , aby vytvořil odpovídající TreeNode objekt.

Při vytváření objektu TreeNodeBinding je nutné zadat kritéria pro vazbu. Kritéria označují, kdy má být datová položka svázaná s uzlem. Můžete zadat Depth vlastnost nebo DataMember obě vlastnosti. Existuje mírné zvýšení výkonu zadáním obou. Hloubka uzlu určuje úroveň uzlu, která se sváže. Například následující TreeNodeBinding deklarace sváže Name pole zdroje ID dat s Text vlastnostmi a Value vlastnostmi všech uzlů s hloubkou 0:

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

Datový člen určuje typ datové položky v podkladovém zdroji dat, ale může představovat různé informace v závislosti na zdroji dat. Každá datová položka v hierarchickém zdroji dat (reprezentovaná rozhraním System.Web.UI.IHierarchyData ) zveřejňuje IHierarchyData.Type vlastnost, která určuje typ datové položky. Například datový člen pro element XML určuje název elementu. Pokud zdroj dat obsahuje více typů datových položek, datový člen určuje, který datový typ položky se má použít. Následující TreeNodeBinding deklarace sváže <Book> prvky XmlDataSource ovládacího prvku se všemi uzly ve stromu bez ohledu na umístění v hierarchii:

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

Po vytvoření vazebních kritérií můžete vytvořit vazbu vlastnosti objektu TreeNode , který může být vázán na hodnotu. Můžete vytvořit vazbu na pole datové položky nebo na statickou hodnotu. Při vazbě na statickou hodnotu sdílejí všechny TreeNode objekty, na které TreeNodeBinding je objekt použit, stejnou hodnotu.

Poznámka:

Vázané vlastnosti v objektu TreeNode můžete selektivně přepsat nastavením odpovídající vlastnosti přímo v uzlu.

Následující tabulka uvádí vlastnosti TreeNodeBinding třídy, které umožňují svázat vlastnost TreeNode objektu s polem datové položky.

Vlastnictví Description
ImageUrlField Pole, které se má svázat s ImageUrl vlastností objektu TreeNode .
ImageToolTipField Pole, které se má svázat s ImageToolTip vlastností objektu TreeNode .
NavigateUrlField Pole, které se má svázat s NavigateUrl vlastností objektu TreeNode .
TextField Pole, které se má svázat s Text vlastností objektu TreeNode .
ToolTipField Pole, které se má svázat s ToolTip vlastností objektu TreeNode .
ValueField Pole, které se má svázat s Value vlastností objektu TreeNode .

Následující tabulka uvádí vlastnosti TreeNodeBinding třídy, které umožňují vytvořit vazbu vlastnosti objektu TreeNode na statickou hodnotu.

Vlastnictví Description
ImageUrl Statická hodnota, která se má svázat s ImageUrl vlastností objektu TreeNode .
ImageToolTip Statická hodnota, která se má svázat s ImageToolTip vlastností objektu TreeNode .
NavigateUrl Statická hodnota, která se má svázat s NavigateUrl vlastností objektu TreeNode .
PopulateOnDemand Statická hodnota, která se má svázat s PopulateOnDemand vlastností objektu TreeNode .
SelectAction Statická hodnota, která se má svázat s SelectAction vlastností objektu TreeNode .
ShowCheckBox Statická hodnota, která se má svázat s ShowCheckBox vlastností objektu TreeNode .
Target Statická hodnota, která se má svázat s Target vlastností objektu TreeNode .
Text Statická hodnota, která se má svázat s Text vlastností objektu TreeNode .
ToolTip Statická hodnota, která se má svázat s ToolTip vlastností objektu TreeNode .
Value Statická hodnota, která se má svázat s Value vlastností objektu TreeNode .

Pokud jsou definovány konfliktní TreeNodeBinding objekty, TreeView ovládací prvek použije vazby uzlů stromu v následujícím pořadí priorit:

  1. Objekt TreeNodeBinding , který definuje a odpovídá hloubkové i datovému členu.

  2. Objekt TreeNodeBinding , který definuje a odpovídá pouze datovému členu.

  3. Objekt TreeNodeBinding , který definuje a odpovídá pouze hloubkě.

  4. Objekt TreeNodeBinding , který definuje hloubku ani datový člen. (Tento typ vazby uzlu stromu se použije na všechny uzly ve stromu.)

  5. Objekt TreeNodeBinding , který nemá shodu ve zdroji dat. V tomto případě je hodnota vrácená metodou ToString datové položky vázána na Text a Value vlastnosti uzlů, na které TreeNodeBinding je objekt použit.

Třída TreeNodeBinding také umožňuje formátovat text zobrazený v uzlu nastavením FormatString vlastnosti.

Konstruktory

Name Description
TreeNodeBinding()

Inicializuje novou instanci TreeNodeBinding třídy.

Vlastnosti

Name Description
DataMember

Získá nebo nastaví hodnotu, která se má shodovat s Type vlastností datové položky k určení, zda použít vazby uzlu stromu.

Depth

Získá nebo nastaví hloubku uzlu, ve kterém TreeNodeBinding je objekt použit.

FormatString

Získá nebo nastaví řetězec, který určuje formát zobrazení pro text uzlu, na který TreeNodeBinding je objekt použit.

ImageToolTip

Získá nebo nastaví text popisu pro obrázek, který je zobrazen vedle uzlu, na který TreeNodeBinding je objekt použit.

ImageToolTipField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na ImageToolTip vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

ImageUrl

Získá nebo nastaví adresu URL na obrázek, který se zobrazí vedle uzlu, na který TreeNodeBinding je objekt použit.

ImageUrlField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na ImageUrl vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

NavigateUrl

Získá nebo nastaví adresu URL odkaz na, pokud je uzel, na který TreeNodeBinding je použit objekt je kliknutí.

NavigateUrlField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na NavigateUrl vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

PopulateOnDemand

Získá nebo nastaví hodnotu určující, zda uzel, na který TreeNodeBinding je objekt použit, je naplněn dynamicky.

SelectAction

Získá nebo nastaví událost nebo události, které se mají vyvolat, když je vybrán uzel, na který TreeNodeBinding je objekt použit.

ShowCheckBox

Získá nebo nastaví hodnotu označující, zda je zaškrtávací políčko zobrazeno vedle uzlu, na který TreeNodeBinding je objekt použit.

Target

Získá nebo nastaví cílové okno nebo rámec, ve kterém se má zobrazit obsah webové stránky, který je přidružen k uzlu, na který TreeNodeBinding je objekt použit.

TargetField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na Target vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

Text

Získá nebo nastaví text zobrazený pro uzel, na který TreeNodeBinding je objekt použit.

TextField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na Text vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

ToolTip

Získá nebo nastaví text popisu pro uzel, na který TreeNodeBinding je objekt použit.

ToolTipField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na ToolTip vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

Value

Získá nebo nastaví zobrazenou hodnotu, která není zobrazena, ale slouží k uložení jakýchkoli dalších dat o uzlu, na který TreeNodeBinding je objekt použit, například data použitá pro zpracování událostí postback.

ValueField

Získá nebo nastaví název pole ze zdroje dat vytvořit vazbu na Value vlastnost TreeNode objektu, na který TreeNodeBinding je objekt použit.

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

DataMember Vrátí vlastnost.

Explicitní implementace rozhraní

Name Description
ICloneable.Clone()

Vytvoří kopii objektu TreeNodeBinding .

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Popis tohoto člena naleznete v tématu DataSourceViewSchema.

IStateManager.IsTrackingViewState

Popis tohoto člena naleznete v tématu IsTrackingViewState.

IStateManager.LoadViewState(Object)

Načte dříve uložený stav zobrazení pro uzel.

IStateManager.SaveViewState()

Uloží změny stavu zobrazení do objektu.

IStateManager.TrackViewState()

Dává objektu TreeNode pokyn, aby sledoval změny jeho stavu zobrazení.

Platí pro

Viz také