SiteMapProvider.GetParentNode Method
When overridden in a derived class, retrieves the parent node of a specific SiteMapNode object.
Namespace: System.Web
Assembly: System.Web (in System.Web.dll)
Parameters
- node
- Type: System.Web.SiteMapNode
The SiteMapNode for which to retrieve the parent node.
Return Value
Type: System.Web.SiteMapNodeA SiteMapNode that represents the parent of node; otherwise, null, if the SiteMapNode has no parent or security trimming is enabled and the parent node is not accessible to the current user.
Note |
|---|
GetParentNode might also return null if the parent node belongs to a different provider. In this case, use the ParentNode property of node instead. |
The following code example demonstrates how to implement the GetParentNode method in a class that implements the abstract SiteMapProvider class. The SimpleTextSiteMapProvider stores the hierarchical parent/child relationship between SiteMapNode objects in an IList interface, such as an ArrayList object.
This code example is part of a larger example provided for the SiteMapProvider class.
// Implement the GetChildNodes method. public override SiteMapNodeCollection GetChildNodes(SiteMapNode node) { SiteMapNodeCollection children = new SiteMapNodeCollection(); // Iterate through the ArrayList and find all nodes that have the specified node as a parent. lock (this) { for (int i = 0; i < childParentRelationship.Count; i++) { string nodeUrl = ((DictionaryEntry)childParentRelationship[i]).Key as string; SiteMapNode parent = GetNode(childParentRelationship, nodeUrl); if (parent != null && node.Url == parent.Url) { // The SiteMapNode with the Url that corresponds to nodeUrl // is a child of the specified node. Get the SiteMapNode for // the nodeUrl. SiteMapNode child = FindSiteMapNode(nodeUrl); if (child != null) { children.Add(child as SiteMapNode); } else { throw new Exception("ArrayLists not in sync."); } } } } return children; } protected override SiteMapNode GetRootNodeCore() { return RootNode; } // Implement the GetParentNode method. public override SiteMapNode GetParentNode(SiteMapNode node) { // Check the childParentRelationship table and find the parent of the current node. // If there is no parent, the current node is the RootNode. SiteMapNode parent = null; lock (this) { // Get the Value of the node in childParentRelationship parent = GetNode(childParentRelationship, node.Url); } return parent; }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note