TreeNode Klasa

Definicja

Reprezentuje węzeł w kontrolce TreeView .

public ref class TreeNode : ICloneable, System::Web::UI::IStateManager
public class TreeNode : ICloneable, System.Web.UI.IStateManager
type TreeNode = class
    interface IStateManager
    interface ICloneable
Public Class TreeNode
Implements ICloneable, IStateManager
Dziedziczenie
TreeNode
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano, jak skonfigurować ramki dla następnego przykładu kodu.


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramecs.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>TreeView Frameset Example</title>
</head>
         
    <frameset cols="30%, 75%">
   
        <frame title="MenuFrame" name="Menu" src="TreeViewFramevb.aspx"/>
        <frame title="ContentFrame" name="Content" src="Home.aspx"/> 
           
    </frameset>      
   
</html>

W poniższym przykładzie kodu pokazano, jak używać składni deklaratywnej do tworzenia TreeNode obiektów w kontrolce TreeView . Ten przykład jest używany w zestawie ram poprzedniego przykładu do wyświetlania spisu treści.


<%@ 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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </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 Declarative Syntax Example</title>
</head>
<body>
    <form id="form1" runat="server">
    
      <h3>TreeView Declarative Syntax Example</h3>
      
      <asp:TreeView id="SampleTreeView" 
        runat="server">
         
        <Nodes>
        
          <asp:TreeNode Value="Home" 
            NavigateUrl="Home.aspx" 
            Text="Home"
            Target="Content" 
            Expanded="True">
             
            <asp:TreeNode Value="Page 1" 
              NavigateUrl="Page1.aspx" 
              Text="Page1"
              Target="Content">
               
              <asp:TreeNode Value="Section 1" 
                NavigateUrl="Section1.aspx" 
                Text="Section 1"
                Target="Content"/>
                 
            </asp:TreeNode>              
            
            <asp:TreeNode Value="Page 2" 
              NavigateUrl="Page2.aspx"
              Text="Page 2"
              Target="Content">
               
            </asp:TreeNode> 
            
          </asp:TreeNode>
        
        </Nodes>
        
      </asp:TreeView>

    </form>
  </body>
</html>

Uwagi

Kontrolka TreeView składa się z węzłów. Każdy wpis w drzewie jest nazywany węzłem i jest reprezentowany TreeNode przez obiekt. Węzeł zawierający inne węzły jest nazywany węzłem nadrzędnym. Węzeł zawarty w innym węźle jest nazywany węzłem podrzędnym. Węzeł, który nie ma węzłów podrzędnych, jest nazywany węzłem liścia. Węzeł, który nie jest zawarty w żadnym innym węźle, ale jest węzłem nadrzędnym do wszystkich innych węzłów, jest węzłem głównym. Węzeł może być zarówno węzłem nadrzędnym, jak i podrzędnym, ale węzły główne, nadrzędne i liścia wzajemnie się wykluczają. Kilka właściwości wizualnych i behawioralnych węzłów zależy od tego, czy węzeł jest węzłem głównym, nadrzędnym czy liścia .

Chociaż typowe drzewo ma tylko jeden węzeł główny, kontrolka TreeView umożliwia dodanie wielu węzłów głównych do struktury drzewa. Jest to przydatne, gdy chcesz wyświetlić listy elementów bez wyświetlania jednego głównego węzła głównego, jak na liście kategorii produktów.

Węzeł przechowuje dane głównie w dwóch właściwościach, Text właściwości i Value właściwości. Wartość Text właściwości jest wyświetlana w kontrolce TreeView , a Value właściwość służy do przechowywania wszelkich dodatkowych danych dotyczących węzła, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego. Węzeł przechowuje również ścieżkę z węzła do węzła głównego we ValuePath właściwości . Właściwość ValuePath wskazuje pozycję węzła względem węzła głównego.

Uwaga

Węzły na tym samym poziomie muszą mieć unikatową wartość dla Value właściwości. Kontrolka TreeView nie może odróżnić różnych węzłów na tym samym poziomie, które mają tę samą wartość. W tym scenariuszu, jeśli użytkownik kliknie węzeł, który ma zduplikowaną wartość, zostanie wybrany węzeł, który zostanie wyświetlony jako pierwszy w kontrolce TreeView .

Obiekt TreeNode składa się z następujących czterech elementów interfejsu użytkownika, które można dostosować lub ukryć:

  • Ikona wskaźnika węzła rozszerzenia używana do pokazywania, czy węzeł jest rozwijany, zwinięty, czy nie rozwijalny.

  • Opcjonalne pole wyboru skojarzone z węzłem.

  • Opcjonalny obraz węzła.

  • Tekst węzła.

Można określić obraz niestandardowy dla wskaźników węzłów, które można rozszerzać, zwijane i niewzględnialne, ustawiając ExpandImageUrlwłaściwości TreeView klasy , CollapseImageUrli NoExpandImageUrl . Ikony wskaźnika węzła rozszerzenia można nawet całkowicie ukryć, ustawiając ShowExpandCollapse właściwość TreeView klasy na false.

Aby wyświetlić pole wyboru obok węzła, ustaw ShowCheckBoxes właściwość TreeView klasy . Gdy właściwość jest ustawiona ShowCheckBoxes na wartość inną niż TreeNodeType.Node, pola wyboru są wyświetlane obok określonego typu węzła. Można selektywnie zastąpić pole wyboru pojedynczego węzła, ustawiając właściwość węzła ShowCheckBox . Po wyświetleniu pola wyboru użyj Checked właściwości , aby określić, czy pole wyboru jest zaznaczone.

Obraz można wyświetlić w węźle, ustawiając ImageUrl właściwość . Ten obraz jest wyświetlany obok tekstu węzła.

Tekst węzła w kontrolce TreeView może być w jednym z dwóch trybów: tryb zaznaczenia lub tryb nawigacji. Domyślnie węzeł jest w trybie wyboru. Aby umieścić węzeł w trybie nawigacji, ustaw właściwość węzła NavigateUrl na wartość inną niż pusty ciąg (""). Aby przełożyć węzeł do trybu wyboru, ustaw właściwość węzła NavigateUrl na pusty ciąg.

Uwaga

Niektóre przeglądarki internetowe mają ograniczenie, które może mieć wpływ na wydajność kontrolki TreeView . Na przykład program Microsoft Internet Explorer 6.0 ma limit znaków adresu URL 2067, który publikuje. Jeśli liczba znaków w adresie URL węzła jest większa niż ta liczba, rozszerzenie tego węzła zakończy się niepowodzeniem i nie zostanie zgłoszony żaden wyjątek.

Domyślnie kliknięcie węzła, który jest w trybie wyboru, publikuje stronę z powrotem na serwerze i zgłasza SelectedNodeChanged zdarzenie. Opcjonalnie możesz określić inne zdarzenie, które ma być wywoływane, ustawiając właściwość węzła SelectAction . Aby uzyskać więcej informacji, zobacz SelectAction. Aby określić, który węzeł został kliknięny w trybie wyboru, użyj SelectedNode właściwości kontrolki TreeView .

Gdy węzeł jest w trybie nawigacji, wszystkie zdarzenia wyboru są wyłączone dla tego węzła. Kliknięcie węzła w trybie nawigacji spowoduje przekierowanie użytkownika do określonego adresu URL. Opcjonalnie możesz ustawić Target właściwość , aby określić okno lub ramkę, w której ma być wyświetlana połączona zawartość.

Klasa TreeNode zawiera kilka właściwości, które są używane do przechowywania stanu węzła. Selected Użyj właściwości , aby określić, czy węzeł jest wybrany. Aby określić, czy węzeł jest rozwinięty, użyj Expanded właściwości . Właściwość służy do określania DataBound , czy węzeł jest powiązany z danymi. Gdy węzeł jest powiązany z danymi, możesz uzyskać dostęp do bazowego elementu danych przy użyciu DataItem właściwości .

Klasa udostępnia kilka właściwości, które pomagają określić położenie węzła względem innych węzłów w drzewie. Użyj właściwości , Depth aby określić głębokość węzła. Listę rozdzielonych węzłów można uzyskać z bieżącego węzła do węzła głównego przy użyciu ValuePath właściwości . Aby określić węzeł nadrzędny węzła, użyj Parent właściwości . Dostęp do węzłów podrzędnych jest uzyskiwany przy użyciu kolekcji ChildNodes .

Czasami nie jest to praktyczne, aby statycznie wstępnie zdefiniować strukturę drzewa ze względu na rozmiar danych lub zawartość niestandardową, która zależy od danych wejściowych użytkownika. W związku z tym kontrolka obsługuje dynamiczną populację TreeView węzłów. Węzeł można wypełnić w czasie wykonywania po rozwinięciu. Należy pamiętać, że w przypadku utrwalonego asynchronicznego tworzenia węzłów można uzyskać nieoczekiwane zachowanie. Jeśli na przykład używasz wątku roboczego w tle do asynchronicznego wypełniania węzłów, drzewo węzłów może nie zostać wypełnione natychmiast, mimo że kontrolka przejdzie do końca cyklu życia strony. Po wystąpieniu zwrotnym opóźnione tworzenie węzłów może powodować problemy, gdy stan widoku kontrolki jest ładowany, ale drzewo węzłów nie jest w pełni wypełnione. Aby uzyskać więcej informacji na temat dynamicznej PopulateOnDemand populacji węzłów, zobacz właściwość .

Aby uzyskać listę początkowych wartości właściwości dla wystąpienia TreeNodeklasy , zobacz TreeNode konstruktor.

Konstruktory

TreeNode()

Inicjuje TreeNode nowe wystąpienie klasy bez tekstu lub wartości.

TreeNode(String)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu.

TreeNode(String, String)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu i wartości.

TreeNode(String, String, String)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu, wartości i adresu URL obrazu.

TreeNode(String, String, String, String, String)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego tekstu, wartości, adresu URL obrazu, adresu URL nawigacji i elementu docelowego.

TreeNode(TreeView, Boolean)

Inicjuje TreeNode nowe wystąpienie klasy przy użyciu określonego właściciela.

Właściwości

Checked

Pobiera lub ustawia wartość wskazującą, czy zaznaczono pole wyboru węzła.

ChildNodes

Pobiera kolekcję zawierającą TreeNodeCollection węzły podrzędne pierwszego poziomu bieżącego węzła.

DataBound

Pobiera wartość wskazującą, czy węzeł został utworzony za pomocą powiązania danych.

DataItem

Pobiera element danych powiązany z kontrolką.

DataPath

Pobiera ścieżkę do danych powiązanych z węzłem.

Depth

Pobiera głębokość węzła.

Expanded

Pobiera lub ustawia wartość wskazującą, czy węzeł jest rozwinięty.

ImageToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla obrazu wyświetlanego obok węzła.

ImageUrl

Pobiera lub ustawia adres URL na obraz wyświetlany obok węzła.

IsTrackingViewState

Pobiera wartość wskazującą, czy węzeł zapisuje zmiany w stanie widoku.

NavigateUrl

Pobiera lub ustawia adres URL, do których ma przejść po kliknięciu węzła.

Parent

Pobiera węzeł nadrzędny bieżącego węzła.

PopulateOnDemand

Pobiera lub ustawia wartość wskazującą, czy węzeł jest wypełniany dynamicznie.

SelectAction

Pobiera lub ustawia zdarzenie lub zdarzenia, które mają być wywoływane po wybraniu węzła.

Selected

Pobiera lub ustawia wartość wskazującą, czy węzeł jest wybrany.

ShowCheckBox

Pobiera lub ustawia wartość wskazującą, czy pole wyboru jest wyświetlane obok węzła.

Target

Pobiera lub ustawia okno docelowe lub ramkę, w której ma być wyświetlana zawartość strony sieci Web skojarzona z węzłem.

Text

Pobiera lub ustawia tekst wyświetlany dla węzła w kontrolce TreeView .

ToolTip

Pobiera lub ustawia tekst etykietki narzędzia dla węzła.

Value

Pobiera lub ustawia nie wyświetlaną wartość używaną do przechowywania dodatkowych danych dotyczących węzła, takich jak dane używane do obsługi zdarzeń ogłaszania zwrotnego.

ValuePath

Pobiera ścieżkę z węzła głównego do bieżącego węzła.

Metody

Clone()

Tworzy nowe wystąpienie TreeNode klasy z właściwościami bieżącego TreeNode wystąpienia.

Collapse()

Zwija bieżący węzeł drzewa.

CollapseAll()

Zwija bieżący węzeł i wszystkie jego węzły podrzędne.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Expand()

Rozwija bieżący węzeł drzewa.

ExpandAll()

Rozwija bieżący węzeł i wszystkie jego węzły podrzędne.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku węzła.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
RenderPostText(HtmlTextWriter)

Umożliwia deweloperom sterowania dodawanie dodatkowego renderowania do węzła.

RenderPreText(HtmlTextWriter)

Umożliwia deweloperom sterowania dodawanie dodatkowego renderowania do węzła.

SaveViewState()

Zapisuje bieżący stan widoku węzła.

Select()

Wybiera bieżący węzeł w kontrolce TreeView .

ToggleExpandState()

Alternatywne między rozwiniętym i zwiniętym stanem węzła.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TrackViewState()

Oznacza punkt początkowy, w którym należy rozpocząć śledzenie i zapisywanie zmian stanu widoku w węźle.

Jawne implementacje interfejsu

ICloneable.Clone()

Tworzy kopię TreeNode obiektu.

IStateManager.IsTrackingViewState

Aby uzyskać opis tego członka, zobacz IsTrackingViewState.

IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan widoku węzła.

IStateManager.SaveViewState()

Zapisuje zmiany stanu widoku w obiekcie Object.

IStateManager.TrackViewState()

Instruuje obiekt, TreeNode aby śledzić zmiany stanu widoku.

Dotyczy

Zobacz też