TreeNode Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en nod i TreeView kontrollen.
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
- Arv
-
TreeNode
- Implementeringar
Exempel
I följande kodexempel visas hur du konfigurerar ramarna för nästa kodexempel.
<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>
I följande kodexempel visas hur du använder deklarativ syntax för att skapa TreeNode objekt i TreeView kontrollen. Det här exemplet används i ramuppsättningen i föregående exempel för att visa en innehållsförteckning.
<%@ 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>
Kommentarer
Kontrollen TreeView består av noder. Varje post i trädet kallas för en nod och representeras av ett TreeNode objekt. En nod som innehåller andra noder kallas för en överordnad nod. En nod som finns i en annan nod kallas för en underordnad nod. En nod som inte har några underordnade noder kallas för en lövnod. En nod som inte finns i någon annan nod, men som är överordnade till alla andra noder, är rotnoden. En nod kan vara både överordnad och underordnad, men rot-, över- och lövnoder är ömsesidigt uteslutande. Flera visuella och beteendemässiga egenskaper för noder bestäms av om en nod är en rot-, överordnad eller lövnod .
Även om ett typiskt träd bara har en rotnod kan TreeView du med kontrollen lägga till flera rotnoder i trädstrukturen. Detta är användbart när du vill visa objektlistor utan att visa en enda huvudrotnod, som i en lista över produktkategorier.
En nod lagrar främst data i två egenskaper, egenskapen Text och egenskapen Value . Värdet för Text egenskapen visas i TreeView kontrollen och Value egenskapen används för att lagra ytterligare data om noden, till exempel data som används för hantering av efteråterställningshändelser. En nod lagrar också sökvägen från noden till dess rotnod i ValuePath egenskapen. Egenskapen ValuePath anger nodens position i förhållande till rotnoden.
Note
Noder på samma nivå måste ha ett unikt värde för Value egenskapen. TreeView Kontrollen kan inte skilja mellan olika noder på samma nivå som har samma värde. Om användaren i det här scenariot klickar på en nod som har ett duplicerat värde väljs den nod som visas först i TreeView kontrollen.
Ett TreeNode objekt består av följande fyra användargränssnittselement (UI), som kan anpassas eller döljas:
En indikatorikon för expansionsnoder som används för att visa om noden är expanderad, komprimerad eller inte kan expanderas.
En valfri kryssruta som är associerad med noden.
En valfri nodbild.
Nodtexten.
Du kan ange en anpassad avbildning för de expanderande, komprimerbara och icke-utökningsbara nodindikatorerna genom att ange ExpandImageUrlegenskaperna , CollapseImageUrloch NoExpandImageUrl för TreeView klassen. Ikonerna för expansionsnodindikatorn kan till och med döljas helt genom att ställa in ShowExpandCollapse egenskapen för TreeView klassen på false.
Om du vill visa en kryssruta bredvid en nod anger du ShowCheckBoxes klassens TreeView egenskap. När egenskapen ShowCheckBoxes är inställd på ett annat värde än TreeNodeType.Nodevisas kryssrutor bredvid den angivna nodtypen. Du kan selektivt åsidosätta kryssrutan för en enskild nod genom att ange nodens ShowCheckBox egenskap. När en kryssruta visas använder du Checked egenskapen för att avgöra om kryssrutan är markerad.
Du kan visa en bild i en nod genom att ange egenskapen ImageUrl . Den här bilden visas bredvid nodtexten.
Texten på en nod i TreeView kontrollen kan vara i något av två lägen: markeringsläge eller navigeringsläge. Som standard är en nod i markeringsläge. Om du vill placera en nod i navigeringsläge anger du nodens NavigateUrl egenskap till ett annat värde än en tom sträng (""). Om du vill placera en nod i markeringsläge anger du nodens NavigateUrl egenskap till en tom sträng.
Note
Vissa webbläsare har en begränsning som kan påverka kontrollens TreeView prestanda. Till exempel har Microsoft Internet Explorer 6.0 en URL-teckengräns på 2 067 tecken som den publicerar. Om antalet tecken i en URL för en nod är större än det talet, kommer det inte att gå att expandera noden och inget undantag genereras.
Om du klickar på en nod som är i markeringsläge skickas sidan tillbaka till servern och händelsen höjs SelectedNodeChanged . Du kan också ange en annan händelse som ska genereras genom att ange nodens SelectAction egenskap. Mer information finns i SelectAction. Om du vill avgöra vilken nod som klickades i markeringsläge använder du SelectedNode kontrollens TreeView egenskap.
När en nod är i navigeringsläge inaktiveras alla markeringshändelser för den noden. Om du klickar på noden i navigeringsläget dirigeras användaren till den angivna URL:en. Du kan också ange Target egenskapen för att ange det fönster eller den ram där det länkade innehållet ska visas.
Klassen TreeNode innehåller flera egenskaper som används för att lagra nodens tillstånd. Använd egenskapen Selected för att avgöra om en nod har valts. Använd egenskapen för att avgöra om noden är expanderad Expanded . Egenskapen DataBound används för att avgöra om en nod är bunden till data. När en nod är bunden till data kan du komma åt det underliggande dataobjektet med hjälp DataItem av egenskapen .
Klassen innehåller flera egenskaper som hjälper dig att fastställa positionen för en nod i förhållande till andra noder i trädet. Använd egenskapen Depth för att fastställa nodens djup. Du kan hämta den avgränsade listan över noder från den aktuella noden till dess rotnod med hjälp ValuePath av egenskapen . Använd egenskapen för Parent att fastställa nodens överordnade nod. Underordnade noder nås med hjälp av ChildNodes samlingen.
Ibland är det inte praktiskt att statiskt fördefinierade trädstrukturen på grund av datastorlek eller anpassat innehåll som är beroende av användarindata. På grund av detta TreeView stöder kontrollen dynamisk nodpopulation. En nod kan fyllas i vid körning när den expanderas. Observera att du kan få oväntat beteende om du bevarar asynkront skapade noder. Om du till exempel använder en bakgrundsarbetstråd för att fylla noder asynkront kanske nodträdet inte fylls i omedelbart även om kontrollen fortsätter med resten av sidlivscykeln. Efter återställningen kan fördröjd skapande av noderna orsaka problem när kontrollens visningstillstånd läses in men nodträdet inte är helt fyllt. Mer information om dynamisk nodpopulation finns i egenskapen PopulateOnDemand .
En lista över initiala egenskapsvärden för en instans av TreeNodefinns i TreeNode konstruktorn.
Konstruktorer
| Name | Description |
|---|---|
| TreeNode() |
Initierar en ny instans av TreeNode klassen utan text eller ett värde. |
| TreeNode(String, String, String, String, String) |
Initierar en ny instans av klassen med hjälp av TreeNode angiven text, värde, bild-URL, navigerings-URL och mål. |
| TreeNode(String, String, String) |
Initierar en ny instans av TreeNode klassen med den angivna text-, värde- och bild-URL:en. |
| TreeNode(String, String) |
Initierar en ny instans av TreeNode klassen med den angivna texten och värdet. |
| TreeNode(String) |
Initierar en ny instans av TreeNode klassen med den angivna texten. |
| TreeNode(TreeView, Boolean) |
Initierar en ny instans av TreeNode klassen med den angivna ägaren. |
Egenskaper
| Name | Description |
|---|---|
| Checked |
Hämtar eller anger ett värde som anger om nodens kryssruta är markerad. |
| ChildNodes |
Hämtar en TreeNodeCollection samling som innehåller de underordnade noderna på den aktuella nodens första nivå. |
| DataBound |
Hämtar ett värde som anger om noden skapades via databindning. |
| DataItem |
Hämtar det dataobjekt som är bundet till kontrollen. |
| DataPath |
Hämtar sökvägen till data som är bundna till noden. |
| Depth |
Hämtar nodens djup. |
| Expanded |
Hämtar eller anger ett värde som anger om noden expanderas. |
| ImageToolTip |
Hämtar eller anger knappbeskrivningstexten för bilden som visas bredvid en nod. |
| ImageUrl |
Hämtar eller anger URL:en till en bild som visas bredvid noden. |
| IsTrackingViewState |
Hämtar ett värde som anger om noden sparar ändringar i visningstillståndet. |
| NavigateUrl |
Hämtar eller anger url:en som ska navigeras till när noden klickas. |
| Parent |
Hämtar den överordnade noden för den aktuella noden. |
| PopulateOnDemand |
Hämtar eller anger ett värde som anger om noden fylls i dynamiskt. |
| SelectAction |
Hämtar eller anger händelsen eller händelserna som ska genereras när en nod väljs. |
| Selected |
Hämtar eller anger ett värde som anger om noden är vald. |
| ShowCheckBox |
Hämtar eller anger ett värde som anger om en kryssruta visas bredvid noden. |
| Target |
Hämtar eller anger målfönstret eller ramen där webbsidans innehåll som är associerat med en nod ska visas. |
| Text |
Hämtar eller anger texten som visas för noden i TreeView kontrollen. |
| ToolTip |
Hämtar eller anger knappbeskrivningstexten för noden. |
| Value |
Hämtar eller anger ett värde som inte visas och som används för att lagra ytterligare data om noden, till exempel data som används för att hantera postback-händelser. |
| ValuePath |
Hämtar sökvägen från rotnoden till den aktuella noden. |
Metoder
| Name | Description |
|---|---|
| Clone() |
Skapar en ny instans av TreeNode klassen med egenskaperna för den aktuella TreeNode instansen. |
| Collapse() |
Döljer den aktuella trädnoden. |
| CollapseAll() |
Döljer den aktuella noden och alla dess underordnade noder. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| Expand() |
Expanderar den aktuella trädnoden. |
| ExpandAll() |
Expanderar den aktuella noden och alla dess underordnade noder. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| LoadViewState(Object) |
Läser in nodens tidigare sparade vytillstånd. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| RenderPostText(HtmlTextWriter) |
Gör att kontrollutvecklare kan lägga till ytterligare återgivning till noden. |
| RenderPreText(HtmlTextWriter) |
Gör att kontrollutvecklare kan lägga till ytterligare återgivning till noden. |
| SaveViewState() |
Sparar nodens aktuella vytillstånd. |
| Select() |
Väljer den aktuella noden i TreeView kontrollen. |
| ToggleExpandState() |
Alternativ mellan nodens expanderade och komprimerade tillstånd. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
| TrackViewState() |
Markerar den startpunkt där du kan börja spåra och spara ändringar i visningstillståndet för noden. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICloneable.Clone() |
Skapar en kopia av TreeNode objektet. |
| IStateManager.IsTrackingViewState |
En beskrivning av den här medlemmen finns i IsTrackingViewState. |
| IStateManager.LoadViewState(Object) |
Läser in nodens tidigare sparade vytillstånd. |
| IStateManager.SaveViewState() |
Sparar visningstillståndet ändras till en Object. |
| IStateManager.TrackViewState() |
Instruerar objektet TreeNode att spåra ändringar i dess visningstillstånd. |