IHierarchyData Interface
Exposes a node of a hierarchical data structure, including the node object and some properties that describe characteristics of the node. Objects that implement the IHierarchyData interface can be contained in IHierarchicalEnumerable collections, and are used by ASP.NET site navigation and data source controls.
Assembly: System.Web (in System.Web.dll)
| Name | Description | |
|---|---|---|
![]() | HasChildren | Indicates whether the hierarchical data node that the IHierarchyData object represents has any child nodes. |
![]() | Item | Gets the hierarchical data node that the IHierarchyData object represents. |
![]() | Path | Gets the hierarchical path of the node. |
![]() | Type |
| Name | Description | |
|---|---|---|
![]() | GetChildren() | Gets an enumeration object that represents all the child nodes of the current hierarchical node. |
![]() | GetParent() | Gets an IHierarchyData object that represents the parent node of the current hierarchical node. |
The IHierarchyData interface is implemented by classes that represent nodes of a hierarchical structure, and track the hierarchical relationships to their parent and child nodes. Classes that implement the IHierarchyData interface can be contained in collections that implement the IHierarchicalEnumerable interface.
The following code example demonstrates how to implement the IHierarchyData interface with a class that wraps a FileSystemInfo object. The FileSystemInfo class is a good example of a hierarchical data node, which the IHierarchyData interface represents for ASP.NET hierarchical data source controls. This code example is part of a larger example provided for the HierarchicalDataSourceControl class.
Public Class FileSystemHierarchyData Implements IHierarchyData Public Sub New(ByVal obj As FileSystemInfo) fileSystemObject = obj End Sub Private fileSystemObject As FileSystemInfo = Nothing Public Overrides Function ToString() As String Return fileSystemObject.Name End Function ' IHierarchyData implementation. Public Overridable ReadOnly Property HasChildren() As Boolean _ Implements IHierarchyData.HasChildren Get If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then Dim temp As DirectoryInfo = _ CType(fileSystemObject, DirectoryInfo) Return temp.GetFileSystemInfos().Length > 0 Else Return False End If End Get End Property ' DirectoryInfo returns the OriginalPath, while FileInfo returns ' a fully qualified path. Public Overridable ReadOnly Property Path() As String _ Implements IHierarchyData.Path Get Return fileSystemObject.ToString() End Get End Property Public Overridable ReadOnly Property Item() As Object _ Implements IHierarchyData.Item Get Return fileSystemObject End Get End Property Public Overridable ReadOnly Property Type() As String _ Implements IHierarchyData.Type Get Return "FileSystemData" End Get End Property Public Overridable Function GetChildren() _ As IHierarchicalEnumerable _ Implements IHierarchyData.GetChildren Dim children As New FileSystemHierarchicalEnumerable() If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then Dim temp As DirectoryInfo = _ CType(fileSystemObject, DirectoryInfo) Dim fsi As FileSystemInfo For Each fsi In temp.GetFileSystemInfos() children.Add(New FileSystemHierarchyData(fsi)) Next fsi End If Return children End Function 'GetChildren Public Overridable Function GetParent() As IHierarchyData _ Implements IHierarchyData.GetParent Dim parentContainer As New FileSystemHierarchicalEnumerable() If GetType(DirectoryInfo) Is fileSystemObject.GetType() Then Dim temp As DirectoryInfo = _ CType(fileSystemObject, DirectoryInfo) Return New FileSystemHierarchyData(temp.Parent) ElseIf GetType(FileInfo) Is fileSystemObject.GetType() Then Dim temp As FileInfo = CType(fileSystemObject, FileInfo) Return New FileSystemHierarchyData(temp.Directory) End If ' If FileSystemObj is any other kind of FileSystemInfo, ignore it. Return Nothing End Function 'GetParent End Class 'FileSystemHierarchyData
The following code example demonstrates how to recursively iterate through an IHierarchicalEnumerable collection, extract the IHierarchyData item from the enumerator using the GetHierarchyData method, and perform basic work with the data item.
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="ihd_1.aspx.vb" Inherits="ihd_1_aspx" %> <!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>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
Available since 2.0
.jpeg?cs-save-lang=1&cs-lang=vb)
.jpeg?cs-save-lang=1&cs-lang=vb)