Share via

SiteMapPath.CreateControlHierarchy Method


Examines the site map structure provided by the SiteMapProvider and builds a child controls collection based on the styles and templates defined for the functional nodes.

 virtual void CreateControlHierarchy();
protected virtual void CreateControlHierarchy ();
abstract member CreateControlHierarchy : unit -> unit
override this.CreateControlHierarchy : unit -> unit
Protected Overridable Sub CreateControlHierarchy ()


No SiteMapProvider is available to the SiteMapPath control.


The CreateControlHierarchy method creates SiteMapNodeItem controls, associates them with the corresponding SiteMapNode objects from the current site map provider, and adds the nodes to the Controls collection.

The method begins by finding the SiteMap.CurrentNode, and then walks up the hierarchical tree of SiteMapNode objects, creating a SiteMapNodeItem for each one until the RootNode is reached. After each SiteMapNodeItem is created, but before it is bound to its corresponding SiteMapNode, the InitializeItem method is called. The InitializeItem method applies any templates or styles defined for a particular node type and creates and initializes any child controls that the SiteMapNodeItem contains. Finally, the InitializeItem method adds the child controls of the SiteMapNodeItem to the Controls collection.

After each SiteMapNodeItem is initialized, the OnItemCreated method is called. Then the SiteMapNodeItem is bound to its corresponding SiteMapNode, and OnDataBound is called.

The CreateControlHierarchy method is called from the CreateChildControls method.

Classes that extend the SiteMapPath control override the CreateControlHierarchy method to alter how the SiteMapNodeItem controls are created or added to the SiteMapPath control. The manipulation of individual node items is performed in the InitializeItem method, and most classes that extend SiteMapPath override that method only.

Applies to

See also