Export (0) Print
Expand All

IHierarchyData.Item Property

Gets the hierarchical data node that the IHierarchyData object represents.

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

Object Item { get; }
/** @property */
Object get_Item ()

function get Item () : Object

Not applicable.

Property Value

An Object hierarchical data node object.

While many classes that represent hierarchical data nodes, such as the SiteMapNode class, implement the IHierarchyData interface directly, other classes only act as a wrapper for a class that does not implement the interface. The Item property is provided for these design situations, when business objects are functionally equivalent to an IHierarchyData object but cannot be redesigned easily.

The following code example demonstrates how to access IHierarchyData properties, check the type of an IHierarchyData object using the Type property, and cast the object to perform more type-specific operations. 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);
        }
    }
}

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

    get_Response().Write(node.toString() + br);
    get_Response().Write(whitespace + node.get_Path() + br);

    // Check for specific types and perform extended functions.
    if (node.get_Type().Equals("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 = null;

        siteNode = (SiteMapNode)node.get_Item();
        get_Response().Write(whitespace + siteNode.get_Url() + br);
        get_Response().Write(whitespace + siteNode.get_Description() + br);
    }
    else {
        if (node.get_Type().Equals("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.get_HasChildren()) {
        IEnumerator children = 
            ((IHierarchicalEnumerable)node.GetChildren()).GetEnumerator();

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

Windows 98, Windows Server 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft