SiteMapProvider.GetParentNode(SiteMapNode) SiteMapProvider.GetParentNode(SiteMapNode) SiteMapProvider.GetParentNode(SiteMapNode) SiteMapProvider.GetParentNode(SiteMapNode) Method

Definition

Ruft beim Überschreiben in einer abgeleiteten Klasse den unmittelbar übergeordneten Knoten eines bestimmten SiteMapNode-Objekts ab.When overridden in a derived class, retrieves the parent node of a specific SiteMapNode object.

public:
 abstract System::Web::SiteMapNode ^ GetParentNode(System::Web::SiteMapNode ^ node);
public abstract System.Web.SiteMapNode GetParentNode (System.Web.SiteMapNode node);
abstract member GetParentNode : System.Web.SiteMapNode -> System.Web.SiteMapNode
Public MustOverride Function GetParentNode (node As SiteMapNode) As SiteMapNode

Parameter

node
SiteMapNode SiteMapNode SiteMapNode SiteMapNode

Der SiteMapNode, für den der unmittelbar übergeordnete Knoten abgerufen werden soll.The SiteMapNode for which to retrieve the parent node.

Gibt zurück

Ein SiteMapNode, der den unmittelbar übergeordneten Knoten von node darstellt. Andernfalls null, wenn SiteMapNode keinen unmittelbar übergeordneten Knoten hat oder wenn Einschränkungen aus Sicherheitsgründen aktiviert sind und der aktuelle Benutzer nicht auf den unmittelbar übergeordneten Knoten zugreifen kann.A 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.

GetParentNode(SiteMapNode) kann auch null zurückgeben, wenn der übergeordnete Knoten zu einem anderen Anbieter gehört.GetParentNode(SiteMapNode) might also return null if the parent node belongs to a different provider. Verwenden Sie in diesem Fall stattdessen die ParentNode-Eigenschaft von node.In this case, use the ParentNode property of node instead.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die GetParentNode -Methode in einer Klasse implementiert wird, SiteMapProvider die die abstrakte-Klasse implementiert.The following code example demonstrates how to implement the GetParentNode method in a class that implements the abstract SiteMapProvider class. Speichert die hierarchische Beziehung zwischen über-und SiteMapNode untergeordneten Elementen IList zwischen Objekten in einer Schnitt ArrayList Stelle, z. b. einem-Objekt. SimpleTextSiteMapProviderThe SimpleTextSiteMapProvider stores the hierarchical parent/child relationship between SiteMapNode objects in an IList interface, such as an ArrayList object.

Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SiteMapProvider -Klasse bereitgestellt wird.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;
}
' Implement the GetChildNodes method.
Public Overrides Function GetChildNodes(ByVal node As SiteMapNode) As SiteMapNodeCollection
  Dim children As New SiteMapNodeCollection()
  ' Iterate through the ArrayList and find all nodes that have the specified node as a parent.
  SyncLock Me
    Dim i As Integer
    For i = 0 To childParentRelationship.Count - 1

      Dim de As DictionaryEntry = CType(childParentRelationship(i), DictionaryEntry)
      Dim nodeUrl As String = CType(de.Key, String)

      Dim parent As SiteMapNode = GetNode(childParentRelationship, nodeUrl)

      If Not (parent Is Nothing) AndAlso node.Url = parent.Url Then
        ' The SiteMapNode with the Url that corresponds to nodeUrl
        ' is a child of the specified node. Get the SiteMapNode for
        ' the nodeUrl.
        Dim child As SiteMapNode = FindSiteMapNode(nodeUrl)
        If Not (child Is Nothing) Then
          children.Add(CType(child, SiteMapNode))
        Else
          Throw New Exception("ArrayLists not in sync.")
        End If
      End If
    Next i
  End SyncLock
  Return children
End Function 'GetChildNodes

Protected Overrides Function GetRootNodeCore() As SiteMapNode
  Return RootNode
End Function ' GetRootNodeCore()

' Implement the GetParentNode method.
Public Overrides Function GetParentNode(ByVal node As SiteMapNode) As SiteMapNode
  ' Check the childParentRelationship table and find the parent of the current node.
  ' If there is no parent, the current node is the RootNode.
  Dim parent As SiteMapNode = Nothing
  SyncLock Me
    ' Get the Value of the node in childParentRelationship
    parent = GetNode(childParentRelationship, node.Url)
  End SyncLock
  Return parent
End Function 'GetParentNode

Gilt für:

Siehe auch