Nyelv

TreeNodeBinding Osztály

Definíció

Meghatározza az adatelem és a vezérlőelemben kötésben TreeView lévő csomópont közötti kapcsolatot.

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
Öröklődés
TreeNodeBinding
Megvalósítás

Példák

Az alábbi táblázat néhány példafacsomópont kötési deklarációit mutatja be.

Példa kötésre Leírás
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Text A fa összes csomópontjának és Value tulajdonságainak kötése az Title adatforráshoz és ID a mezőkhöz. Minden csomópont ezt a facsomópontkötési deklarációt használja, mert a tulajdonságok és DataMember a Depth tulajdonságok nincsenek beállítva.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Text A fa összes csomópontjának és Value tulajdonságainak kötése az TitleID adatforrás adatelemének és Book mezőinek mezőihez.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Text A fa 2 mélységű csomópontjának és Value tulajdonságainak kötése az Title adatforrás adatelemének és ID mezőinek mezőihez.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Text A fa 2 mélységű csomópontjának és Value tulajdonságainak kötése az TitleID adatforrás adatelemének és Book mezőinek mezőihez. Emellett a ImageUrl csomópontok tulajdonságát statikus értékhez köti.

Ez a szakasz három példakódot tartalmaz. Az első példakód bemutatja, hogyan használhat TreeNodeBinding objektumokat deklaratív módon egy csomópont és egy adatelem közötti kapcsolat meghatározásához. A második példakód bemutatja, hogyan használható TreeNodeBinding az objektumok programozott módon a csomópont és az adatelem közötti kapcsolat meghatározására. A harmadik példa xml-mintaadatokat biztosít az első és a második kód példáihoz.

Az alábbi példakód bemutatja, hogyan használhat TreeNodeBinding objektumokat deklaratív módon egy csomópont és egy adatelem közötti kapcsolat meghatározásához. Ahhoz, hogy ez a példa megfelelően működjön, a példakód után megadott XML-mintaadatokat egy Book.xmlnevű fájlba kell másolnia.


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

Az alábbi példakód bemutatja, hogyan használható TreeNodeBinding az objektumok programozott módon egy csomópont és egy adatelem közötti kapcsolat meghatározására. Ahhoz, hogy ez a példa megfelelően működjön, át kell másolnia a következő példakódban megadott XML-mintaadatokat egy Book.xmlnevű fájlba.


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

Az alábbi példakód xml-mintaadatokat tartalmaz az előző kódmintákhoz.

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

Megjegyzések

Ha a TreeView vezérlő olyan adatforráshoz van kötve, amelyben minden adatelem több mezőt tartalmaz (például egy több attribútumot tartalmazó XML-elemet), a csomópont alapértelmezés szerint megjeleníti az ToString adatelem metódusa által visszaadott értéket. XML-elem esetén a csomópont megjeleníti az elem nevét, amely a fa mögöttes szerkezetét mutatja, máskülönben azonban nem túl hasznos. Egy csomópont tulajdonságait egy adott mezőhöz kötheti a facsomópont kötéseinek megadásával. Az TreeNodeBinding objektumok meghatározzák az egyes adatelemek és a csomópontok közötti kapcsolatot, amelyekhez kötést fűznek.

A TreeView vezérlő a tulajdonságban tárolja TreeNodeBinding az DataBindings objektumokat, és a kötéseket az adatforrásra alkalmazza, hogy egy-az-egyhez kapcsolatot hozzon létre a fahierarchia és az adatforrás-hierarchia között. Az adatforrás minden egyes adateleme esetében a TreeView vezérlő megkísérli egyezni az adatelemet egy TreeNodeBinding objektummal a megfelelő TreeNode objektum létrehozása érdekében.

Objektum létrehozásakor TreeNodeBinding meg kell adnia a kötés feltételeit. A feltételek azt jelzik, hogy mikor kell egy adatelemet csomóponthoz kötni. Megadhatja a vagy Depth a DataMember tulajdonságot, vagy mindkét tulajdonságot. Mindkettő megadásával enyhe teljesítménynövekedés érhető el. A csomópontmélység határozza meg a kötött csomópontszintet. Az alábbi TreeNodeBinding deklaráció például az Name adatforrás és ID a tulajdonságok 0 mélységű összes csomóponthoz és tulajdonságokhoz TextValue köti az adatforrást:

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

Az adattagok az alapul szolgáló adatforrás adatelemének típusát határozzák meg, de az adatforrástól függően különböző információkat is képviselhetnek. A hierarchikus adatforrás minden adateleme (amelyet egy System.Web.UI.IHierarchyData interfész jelöl) egy IHierarchyData.Type tulajdonságot tesz elérhetővé, amely meghatározza az adatelem típusát. Egy XML-elem adattagja például az elem nevét adja meg. Ha egy adatforrás több adatelemtípust tartalmaz, az adattag megadja, hogy melyik adatelemtípust használja. Az alábbi TreeNodeBinding deklaráció a <Book> vezérlő elemeit XmlDataSource a fa összes csomópontjára köti, függetlenül a hierarchia helyétől:

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

A kötési feltételek meghatározása után egy értékhez kötött objektum tulajdonságát TreeNode kötheti össze. Egy adatelem mezőihez vagy statikus értékhez is kapcsolódhat. Ha statikus értékhez van kötve, az összes TreeNode objektum, amelyre az TreeNodeBinding objektumot alkalmazza, ugyanazzal az értékkel rendelkezik.

Note

Egy objektum kötött tulajdonságát TreeNode szelektíven felülbírálhatja úgy, hogy a megfelelő tulajdonságot közvetlenül a csomóponton állítja be.

Az alábbi táblázat az osztály azon tulajdonságait sorolja TreeNodeBinding fel, amelyek lehetővé teszik, hogy az TreeNode objektum egy tulajdonságát egy adatelem mezőihez kösse.

Ingatlan Leírás
ImageUrlField Az objektum tulajdonságához ImageUrl kötődő TreeNode mező.
ImageToolTipField Az objektum tulajdonságához ImageToolTip kötődő TreeNode mező.
NavigateUrlField Az objektum tulajdonságához NavigateUrl kötődő TreeNode mező.
TextField Az objektum tulajdonságához Text kötődő TreeNode mező.
ToolTipField Az objektum tulajdonságához ToolTip kötődő TreeNode mező.
ValueField Az objektum tulajdonságához Value kötődő TreeNode mező.

Az alábbi táblázat az osztály azon tulajdonságait sorolja TreeNodeBinding fel, amelyek lehetővé teszik az TreeNode objektum egy tulajdonságának statikus értékhez kötését.

Ingatlan Leírás
ImageUrl Az objektum tulajdonságához ImageUrlTreeNode kötéshez tartozó statikus érték.
ImageToolTip Az objektum tulajdonságához ImageToolTipTreeNode kötéshez tartozó statikus érték.
NavigateUrl Az objektum tulajdonságához NavigateUrlTreeNode kötéshez tartozó statikus érték.
PopulateOnDemand Az objektum tulajdonságához PopulateOnDemandTreeNode kötéshez tartozó statikus érték.
SelectAction Az objektum tulajdonságához SelectActionTreeNode kötéshez tartozó statikus érték.
ShowCheckBox Az objektum tulajdonságához ShowCheckBoxTreeNode kötéshez tartozó statikus érték.
Target Az objektum tulajdonságához TargetTreeNode kötéshez tartozó statikus érték.
Text Az objektum tulajdonságához TextTreeNode kötéshez tartozó statikus érték.
ToolTip Az objektum tulajdonságához ToolTipTreeNode kötéshez tartozó statikus érték.
Value Az objektum tulajdonságához ValueTreeNode kötéshez tartozó statikus érték.

Ha ütköző TreeNodeBinding objektumok vannak definiálva, a vezérlő a TreeView facsomópont-kötéseket az alábbi sorrendben alkalmazza:

  1. A TreeNodeBinding mélységet és az adattagot egyaránt meghatározó és egyező objektum.

  2. Az TreeNodeBinding az objektum, amely csak az adattagot határozza meg és felel meg.

  3. Az TreeNodeBinding objektum, amely csak a mélységet határozza meg és felel meg.

  4. Az TreeNodeBinding az objektum, amely nem határozza meg sem a mélységet, sem az adattagot. (Ez a facsomópont-kötéstípus a fa összes csomópontjára érvényes.)

  5. Az TreeNodeBinding az objektum, amely nem rendelkezik egyezéssel az adatforrásban. Ebben az esetben az adatelem metódusa által ToString visszaadott érték azoknak a Text csomópontoknak és Value tulajdonságoknak a tulajdonságaihoz lesz kötve, amelyekre az TreeNodeBinding objektumot alkalmazza.

Az TreeNodeBinding osztály lehetővé teszi a csomóponton megjelenő szöveg formázását is a FormatString tulajdonság beállításával.

Konstruktorok

Name Description
TreeNodeBinding()

Inicializálja a TreeNodeBinding osztály új példányát.

Tulajdonságok

Name Description
DataMember

Lekéri vagy beállítja az adatelem tulajdonságának megfelelő Type értéket annak megállapításához, hogy alkalmazza-e a facsomópont kötését.

Depth

Lekéri vagy beállítja az objektum alkalmazásának csomópontmélységét TreeNodeBinding .

FormatString

Lekéri vagy beállítja az objektumot alkalmazó csomópont TreeNodeBinding szövegének megjelenítési formátumát meghatározó sztringet.

ImageToolTip

Lekéri vagy beállítja a kép elemleírásának szövegét, amely egy csomópont mellett jelenik meg, amelyre az TreeNodeBinding objektumot alkalmazza.

ImageToolTipField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a ImageToolTip tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

ImageUrl

Lekéri vagy beállítja az URL-címet egy olyan képre, amely TreeNodeBinding az objektumot alkalmazó csomópont mellett jelenik meg.

ImageUrlField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a ImageUrl tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

NavigateUrl

Lekéri vagy beállítja azt az URL-címet, amelyre az TreeNodeBinding objektumot alkalmazó csomópont kattint.

NavigateUrlField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a NavigateUrl tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

PopulateOnDemand

Lekéri vagy beállít egy értéket, amely jelzi, hogy az objektumot alkalmazó TreeNodeBinding csomópont dinamikusan van-e feltöltve.

SelectAction

Lekéri vagy beállítja az eseményt vagy eseményeket, amikor ki van jelölve egy csomópont, amelyre az TreeNodeBinding objektumot alkalmazták.

ShowCheckBox

Beolvas vagy beállít egy értéket, amely jelzi, hogy egy jelölőnégyzet jelenik-e meg az objektumot alkalmazó csomópont TreeNodeBinding mellett.

Target

Lekéri vagy beállítja azt a célablakot vagy keretet, amelyben megjelenítheti az objektumot alkalmazó csomóponthoz TreeNodeBinding társított weblaptartalmat.

TargetField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a Target tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

Text

Lekéri vagy beállítja annak a csomópontnak a szövegét, amelyre az TreeNodeBinding objektumot alkalmazza.

TextField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a Text tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

ToolTip

Lekéri vagy beállítja az elemleírás szövegét ahhoz a csomóponthoz, amelyre az TreeNodeBinding objektumot alkalmazza.

ToolTipField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a ToolTip tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

Value

Lekéri vagy beállítja a megjelenített értéket, amely nem jelenik meg, de az objektumot alkalmazó csomópont TreeNodeBinding további adatainak tárolására szolgál, például a visszavételi események kezelésére használt adatok tárolására.

ValueField

Lekéri vagy beállítja a mező nevét az adatforrásból annak az objektumnak a Value tulajdonságához TreeNode való kötéshez, amelyre az TreeNodeBinding objektumot alkalmazza.

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

A tulajdonságot adja DataMember vissza.

Explicit interfész-implementációk

Name Description
ICloneable.Clone()

Létrehozza az objektum másolatát TreeNodeBinding .

IDataSourceViewSchemaAccessor.DataSourceViewSchema

Ennek a tagnak a leírását lásd DataSourceViewSchema: .

IStateManager.IsTrackingViewState

Ennek a tagnak a leírását lásd IsTrackingViewState: .

IStateManager.LoadViewState(Object)

Betölti a csomópont korábban mentett nézetállapotát.

IStateManager.SaveViewState()

Menti a nézetállapot módosításait egy objektumba.

IStateManager.TrackViewState()

Utasítja az TreeNode objektumot, hogy kövesse nyomon a nézetállapot változásait.

A következőre érvényes:

Lásd még