Export (0) Print
Expand All

IHierarchyData.GetChildren Method

Gets an enumeration object that represents all the child nodes of the current hierarchical node.

Namespace:  System.Web.UI
Assembly:  System.Web (in System.Web.dll)

IHierarchicalEnumerable GetChildren()

Return Value

Type: System.Web.UI.IHierarchicalEnumerable
An IHierarchicalEnumerable collection of child nodes of the current hierarchical node.

You can use the HasChildren property to determine whether the IHierarchyData node has child nodes.

The following code example demonstrates how to check the HasChildren property to determine whether the current hierarchical data node has child nodes, and retrieve them using the GetChildren method. This code example is part of a larger example provided for the IHierarchyData interface.

// Print out the the current data node, then iterate through its 
// children and do the same. 
private void PrintFullChildNodeInfo(IHierarchyData node)
{
    string whitespace = "     ";
    string br = "<BR>";

    Response.Write(node.ToString() + br);
    Response.Write(whitespace + node.Path + br);

    // Check for specific types and perform extended functions. 
    if (node.Type == "SiteMapNode")
    {
        // Because SiteMapNode implements the IHierarchyData interface, 
        // the IHierarchyData object can be cast directly as a SiteMapNode, 
        // rather than accessing the Item property for the object that 
        // the Type property identifies.
        SiteMapNode siteNode = node.Item as SiteMapNode;
        Response.Write(whitespace + siteNode.Url + br);
        Response.Write(whitespace + siteNode.Description + br);
    }
    else if (node.Type == "SomeBusinessObject")
    {
        // If the IHierarchyData instance is a wrapper class on a business 
        // object of some kind, you can retrieve the business object by using 
        // the IHierarchyData.Item property. 
        //          SomeBusinessObject busObj = node.Item as SomeBusinessObject;
    }

    if (node.HasChildren)
    {
        IEnumerator children = ((IHierarchicalEnumerable)node.GetChildren()).GetEnumerator();

        while (children.MoveNext())
        {
            // Print out SiteMapNode Titles recursively.
            IHierarchyData hierarchicalNode = node.GetChildren().GetHierarchyData(children.Current);
            PrintFullChildNodeInfo(hierarchicalNode);
        }
    }
}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0
Show:
© 2015 Microsoft