TreeNodeBinding Třída

Definice

Definuje vztah mezi datovou položkou a uzlem, se kterou je v ovládacím TreeView prvku vázán.

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 Text Value vlastnosti všech uzlů ve stromu na Title pole ID zdroje dat. Všechny uzly používají tuto deklaraci vazby uzlu stromu, protože DataMember vlastnosti Depth nejsou nastavené.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Text Vytvoří vazbu a Value vlastnosti všech uzlů ve stromu na Title pole ID Book datové položky ve zdroji dat v uvedeném pořadí.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Text Sváže vlastnosti všech Value uzlů s hloubkou 2 ve stromu a Title ID poli datové položky ve zdroji dat v uvedeném pořadí.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Text Sváže vlastnosti všech Value uzlů s hloubkou 2 ve stromu a Title ID poli Book datové položky ve zdroji dat v uvedeném pořadí. 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 použít TreeNodeBinding objekty deklarativní k definování vztahu 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říklady kódu.

Následující příklad kódu ukazuje, jak použít TreeNodeBinding objekty deklarativní k definování vztahu mezi uzlem a datovou položkou. Aby tento příklad fungoval správně, musíte zkopírovat ukázková data XML za tímto příkladem 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á datová položka obsahuje více polí (například prvek XML s několika atributy), uzel zobrazí hodnotu vrácenou metodou ToString datové položky ve výchozím nastavení. V případě elementu XML uzel zobrazí název elementu, který zobrazuje základní strukturu stromu, ale není moc užitečný jinak. Vlastnosti uzlu můžete svázat s konkrétním polem zadáním vazeb uzlů stromu. Objekt TreeNodeBinding definuje vztah mezi jednotlivými datovými položkami 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 hierarchií stromu a hierarchií zdroje dat. U každé datové položky 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 vázána na uzel. Můžete zadat Depth vlastnost nebo DataMember obě vlastnosti. Pokud zadáte oba typy, můžete dosáhnout mírného zvýšení výkonu. Hloubka uzlu určuje úroveň uzlu, která je vázána. Například následující TreeNodeBinding deklarace sváže Name pole ID zdroje 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á System.Web.UI.IHierarchyData rozhraním) zveřejňuje IHierarchyData.Type vlastnost, která určuje typ datové položky. Například datový člen elementu XML určuje název elementu. Pokud zdroj dat obsahuje více typů datových položek, určuje datový člen, 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í kritérií vazby 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í vytvořit vazbu vlastnosti objektu TreeNode na pole datové položky.

Vlastnost Popis
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.

Vlastnost Popis
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á hloubkě 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

TreeNodeBinding()

Inicializuje novou instanci TreeNodeBinding třídy.

Vlastnosti

DataMember

Získá nebo nastaví hodnotu, která se má shodovat s Type vlastností datové položky k určení, zda se má použít vazba 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 popisku obrázku zobrazeného vedle uzlu, na který TreeNodeBinding se objekt použije.

ImageToolTipField

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

ImageUrl

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

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 pro odkaz, na který 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 urč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 zobrazí obsah webové stránky 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 se objekt použije.

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 se objekt použije.

ToolTip

Získá nebo nastaví text popisku pro uzel, na který TreeNodeBinding se objekt použije.

ToolTipField

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

Value

Získá nebo nastaví zobrazenou hodnotu, která se nezobrazuje, ale slouží k uložení 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 se objekt použije.

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

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

Slouží jako výchozí funkce hash.

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

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru Object.

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

DataMember Vrátí vlastnost.

Explicitní implementace rozhraní

ICloneable.Clone()

Vytvoří kopii objektu TreeNodeBinding .

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Popis tohoto člena najdete v tématu DataSourceViewSchema.

IStateManager.IsTrackingViewState

Popis tohoto člena najdete 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 ke sledování změn ve stavu zobrazení.

Platí pro

Viz také