TreeNodeBinding Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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:
Obiekt TreeNodeBinding , który definiuje i dopasuje zarówno głębokość, jak i element członkowski danych.
Obiekt TreeNodeBinding , który definiuje i pasuje tylko do elementu członkowskiego danych.
Obiekt TreeNodeBinding , który definiuje i dopasuje tylko głębokość.
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).
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ż
- TreeView
- TreeNode
- TreeNodeBindingCollection
- XmlDataSource
- DataBindings
- DataMember
- Depth
- FormatString
- ImageUrl
- ImageUrlField
- ImageToolTip
- ImageToolTipField
- NavigateUrl
- NavigateUrl
- NavigateUrlField
- PopulateOnDemand
- SelectAction
- ShowCheckBox
- Target
- Text
- Text
- TextField
- ToolTip
- ToolTip
- ToolTipField
- Value
- Value
- ValueField