TreeNodeBinding Klass

Definition

Definierar relationen mellan ett dataobjekt och den nod som det binds till i en TreeView kontroll.

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
Arv
TreeNodeBinding
Implementeringar

Exempel

I följande tabell visas några exempel på bindningsdeklarationer för trädnoder.

Exempelbindning Description
<asp:TreeNodeBinding TextField="Title" ValueField= "ID"/> Binder Text egenskaperna och Value för alla noder i trädet till fälten Title och ID för datakällan. Alla noder använder den här trädnodbindningsdeklarationen DataMember eftersom egenskaperna och Depth inte har angetts.
<asp:TreeNodeBinding DataMember= "Book" TextField= "Title" ValueField= "ID"/> Binder Text egenskaperna och Value för alla noder i trädet till fälten TitleBook och ID för dataobjektet i datakällan.
<asp:TreeNodeBinding Depth="2" TextField= "Title" ValueField= "ID"/> Binder Text egenskaperna och Value för alla noder med djupet 2 i trädet till fälten Title och ID för dataobjektet i datakällan.
<asp:TreeNodeBinding DataMember="Book" Depth= "2" TextField= "Title" ValueField= "ID" ImageUrl= "Image.jpg"> Binder Text egenskaperna och Value för alla noder med djupet 2 i trädet till fälten TitleBook och ID för dataobjektet i datakällan. Binder ImageUrl också egenskapen för noderna till ett statiskt värde.

Det här avsnittet innehåller tre kodexempel. Det första kodexemplet visar hur du använder TreeNodeBinding objekt deklarativt för att definiera relationen mellan en nod och ett dataobjekt. Det andra kodexemplet visar hur du använder TreeNodeBinding objekt programmatiskt för att definiera relationen mellan en nod och ett dataobjekt. Det tredje kodexemplet innehåller XML-exempeldata för första och andra kodexemplen.

I följande kodexempel visas hur du använder TreeNodeBinding objekt deklarativt för att definiera relationen mellan en nod och ett dataobjekt. För att det här exemplet ska fungera korrekt måste du kopiera XML-exempeldata, som tillhandahålls efter det här kodexemplet, till en fil med namnet 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>

Följande kodexempel visar hur du använder TreeNodeBinding objekt programmatiskt för att definiera relationen mellan en nod och ett dataobjekt. För att det här exemplet ska fungera korrekt måste du kopiera xml-exempeldata som anges i nästa kodexempel till en fil med namnet 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>

Följande kodexempel innehåller XML-exempeldata för föregående kodexempel.

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

Kommentarer

TreeView När kontrollen är bunden till en datakälla där varje dataobjekt innehåller flera fält (till exempel ett XML-element med flera attribut) visar en nod det värde som returneras av ToString dataobjektets metod som standard. När det gäller ett XML-element visar noden elementnamnet, som visar trädets underliggande struktur, men som annars inte är särskilt användbart. Du kan binda egenskaperna för en nod till ett visst fält genom att ange trädnodbindningar. Ett TreeNodeBinding objekt definierar relationen mellan varje dataobjekt och den nod som det är bindning till.

Kontrollen TreeView lagrar sina TreeNodeBinding objekt i DataBindings egenskapen och tillämpar bindningarna på datakällan för att skapa en en-till-en-relation mellan trädhierarkin och datakällans hierarki. För varje dataobjekt i datakällan TreeView försöker kontrollen matcha dataobjektet med ett TreeNodeBinding objekt för att skapa motsvarande TreeNode objekt.

När du skapar ett TreeNodeBinding objekt måste du ange villkoret för bindning. Villkoret anger när ett dataobjekt ska bindas till en nod. Du kan ange Depth egenskapen eller DataMember eller båda egenskaperna. Det finns en liten prestandaökning genom att ange båda. Ett noddjup anger den nodnivå som binds. Följande deklaration binder till exempel TreeNodeBinding datakällans Name fält och ID till Text egenskaperna och Value för alla noder med djupet 0:

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

En datamedlem anger typen av dataobjekt i den underliggande datakällan, men kan representera olika information beroende på datakällan. Varje dataobjekt i en hierarkisk datakälla (representeras av ett System.Web.UI.IHierarchyData gränssnitt) exponerar en IHierarchyData.Type egenskap som anger typen av dataobjekt. Datamedlemmen för ett XML-element anger till exempel namnet på elementet. När en datakälla innehåller flera typer av dataobjekt anger datamedlemmen vilken typ av dataobjekt som ska användas. Följande TreeNodeBinding deklaration binder elementen i <Book> en XmlDataSource kontroll till alla noder i trädet, oavsett plats i hierarkin:

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

När bindningsvillkoren har upprättats kan du sedan binda en egenskap för ett TreeNode objekt som kan bindas till ett värde. Du kan binda till ett fält i ett dataobjekt eller till ett statiskt värde. När det är bundet till ett statiskt värde delar alla TreeNode objekt som TreeNodeBinding objektet tillämpas på samma värde.

Note

Du kan selektivt åsidosätta en bunden egenskap i ett TreeNode objekt genom att ange motsvarande egenskap direkt i noden.

I följande tabell visas egenskaperna för klassen TreeNodeBinding som gör att du kan binda en egenskap för TreeNode objektet till ett fält i ett dataobjekt.

Property Description
ImageUrlField Fältet som ska bindas till ImageUrl egenskapen för ett TreeNode objekt.
ImageToolTipField Fältet som ska bindas till ImageToolTip egenskapen för ett TreeNode objekt.
NavigateUrlField Fältet som ska bindas till NavigateUrl egenskapen för ett TreeNode objekt.
TextField Fältet som ska bindas till Text egenskapen för ett TreeNode objekt.
ToolTipField Fältet som ska bindas till ToolTip egenskapen för ett TreeNode objekt.
ValueField Fältet som ska bindas till Value egenskapen för ett TreeNode objekt.

I följande tabell visas egenskaperna för klassen TreeNodeBinding som gör att du kan binda en egenskap för TreeNode objektet till ett statiskt värde.

Property Description
ImageUrl Det statiska värdet som ska bindas till ImageUrl egenskapen för ett TreeNode objekt.
ImageToolTip Det statiska värdet som ska bindas till ImageToolTip egenskapen för ett TreeNode objekt.
NavigateUrl Det statiska värdet som ska bindas till NavigateUrl egenskapen för ett TreeNode objekt.
PopulateOnDemand Det statiska värdet som ska bindas till PopulateOnDemand egenskapen för ett TreeNode objekt.
SelectAction Det statiska värdet som ska bindas till SelectAction egenskapen för ett TreeNode objekt.
ShowCheckBox Det statiska värdet som ska bindas till ShowCheckBox egenskapen för ett TreeNode objekt.
Target Det statiska värdet som ska bindas till Target egenskapen för ett TreeNode objekt.
Text Det statiska värdet som ska bindas till Text egenskapen för ett TreeNode objekt.
ToolTip Det statiska värdet som ska bindas till ToolTip egenskapen för ett TreeNode objekt.
Value Det statiska värdet som ska bindas till Value egenskapen för ett TreeNode objekt.

Om motstridiga TreeNodeBinding objekt definieras TreeView tillämpar kontrollen trädnodbindningarna i följande prioritetsordning:

  1. Objektet TreeNodeBinding som definierar och matchar både ett djup och en datamedlem.

  2. Objektet TreeNodeBinding som endast definierar och matchar datamedlemmen.

  3. Objektet TreeNodeBinding som definierar och matchar endast djupet.

  4. Objektet TreeNodeBinding som varken definierar djupet eller datamedlemmen. (Den här typen av trädnodbindning tillämpas på alla noder i trädet.)

  5. Objektet TreeNodeBinding som inte har någon matchning i datakällan. I det här fallet är värdet som returneras av ToString metoden för dataobjektet sedan bundet Text till egenskaperna och Value för de noder som TreeNodeBinding objektet tillämpas på.

Med TreeNodeBinding klassen kan du också formatera texten som visas i en nod genom att ange egenskapen FormatString .

Konstruktorer

Name Description
TreeNodeBinding()

Initierar en ny instans av TreeNodeBinding klassen.

Egenskaper

Name Description
DataMember

Hämtar eller anger värdet som ska matchas mot en Type egenskap för ett dataobjekt för att avgöra om trädnodbindningen ska tillämpas.

Depth

Hämtar eller anger noddjupet TreeNodeBinding där objektet används.

FormatString

Hämtar eller anger strängen som anger visningsformatet för texten i en nod som TreeNodeBinding objektet tillämpas på.

ImageToolTip

Hämtar eller anger knappbeskrivningstexten för den bild som visas bredvid en nod som TreeNodeBinding objektet tillämpas på.

ImageToolTipField

Hämtar eller anger namnet på fältet från datakällan för att binda till ImageToolTip egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

ImageUrl

Hämtar eller anger URL:en till en bild som visas bredvid en nod som TreeNodeBinding objektet tillämpas på.

ImageUrlField

Hämtar eller anger namnet på fältet från datakällan för att binda till ImageUrl egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

NavigateUrl

Hämtar eller anger url:en som ska länkas till när en nod som TreeNodeBinding objektet tillämpas på klickas på.

NavigateUrlField

Hämtar eller anger namnet på fältet från datakällan för att binda till NavigateUrl egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

PopulateOnDemand

Hämtar eller anger ett värde som anger om noden som TreeNodeBinding objektet tillämpas på fylls i dynamiskt.

SelectAction

Hämtar eller ställer in händelsen eller händelserna som ska genereras när en nod som TreeNodeBinding objektet tillämpas på väljs.

ShowCheckBox

Hämtar eller anger ett värde som anger om en kryssruta visas bredvid en nod som TreeNodeBinding objektet tillämpas på.

Target

Hämtar eller anger målfönstret eller ramen där webbsidans innehåll som är associerat med en nod som TreeNodeBinding objektet ska tillämpas på ska visas.

TargetField

Hämtar eller anger namnet på fältet från datakällan för att binda till Target egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

Text

Hämtar eller anger den text som visas för den nod som TreeNodeBinding objektet tillämpas på.

TextField

Hämtar eller anger namnet på fältet från datakällan för att binda till Text egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

ToolTip

Hämtar eller anger knappbeskrivningstexten för en nod som TreeNodeBinding objektet tillämpas på.

ToolTipField

Hämtar eller anger namnet på fältet från datakällan för att binda till ToolTip egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

Value

Hämtar eller anger ett visningsvärde som inte visas men som används för att lagra ytterligare data om en nod som TreeNodeBinding objektet tillämpas på, till exempel data som används för hantering av efteråterställningshändelser.

ValueField

Hämtar eller anger namnet på fältet från datakällan för att binda till Value egenskapen för ett TreeNode objekt som TreeNodeBinding objektet tillämpas på.

Metoder

Name Description
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar egenskapen DataMember .

Explicita gränssnittsimplementeringar

Name Description
ICloneable.Clone()

Skapar en kopia av TreeNodeBinding objektet.

IDataSourceViewSchemaAccessor.DataSourceViewSchema

En beskrivning av den här medlemmen finns i DataSourceViewSchema.

IStateManager.IsTrackingViewState

En beskrivning av den här medlemmen finns i IsTrackingViewState.

IStateManager.LoadViewState(Object)

Läser in det tidigare sparade visningstillståndet för noden.

IStateManager.SaveViewState()

Sparar visningstillståndet ändringar i ett objekt.

IStateManager.TrackViewState()

Instruerar objektet TreeNode att spåra ändringar i dess visningstillstånd.

Gäller för

Se även