Export (0) Print
Expand All

SiteMapNodeCollection.Add Method

Adds a single SiteMapNode object to the collection.

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

'Declaration
Public Overridable Function Add ( _
	value As SiteMapNode _
) As Integer

Parameters

value
Type: System.Web.SiteMapNode

The SiteMapNode to add to the SiteMapNodeCollection.

Return Value

Type: System.Int32
The index of the InnerList where the SiteMapNode was inserted.

ExceptionCondition
ArgumentNullException

value is Nothing.

NotSupportedException

The SiteMapNodeCollection is read-only.

You cannot add a SiteMapNode object to a read-only or fixed-size SiteMapNodeCollection collection. You can test whether a SiteMapNodeCollection is read-only by checking the IsReadOnly property.

This section contains two code examples. The first code example demonstrates how to create a new SiteMapNodeCollection collection and add elements to it. The second code example demonstrates how to add elements to a custom site map provider.

The following code example demonstrates how to use the SiteMapNodeCollection constructor to create a new SiteMapNodeCollection, and then add elements to it with the Add method.

        ' The LoadSiteMapData() Function loads site navigation 
        ' data from persistent storage into a DataTable. 

        Dim siteMapData As DataTable
        siteMapData = LoadSiteMapData()

        ' Create a SiteMapNodeCollection. 
        Dim nodes As New SiteMapNodeCollection()

        ' Create a SiteMapNode and add it to the collection. 
        Dim tempNode As SiteMapNode
        Dim row As DataRow
        Dim index As Integer
        index = 0

        While (index < siteMapData.Rows.Count)

            row = siteMapData.Rows(index)

            ' Create a node based on the data in the DataRow.
            tempNode = New SiteMapNode(SiteMap.Provider, row("Key").ToString(), row("Url").ToString())

            ' Add the node to the collection.
            nodes.Add(tempNode)
            index = index + 1
        End While

The following code example demonstrates a custom site map provider implementation and shows how to use the SiteMapNodeCollection constructor to create a new SiteMapNodeCollection and add elements to the SiteMapNodeCollection with the Add method.

This code example is part of a larger code example provided for the SiteMapProvider class.

' 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

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0

Windows 8.1, Windows Server 2012 R2, 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.

Show:
© 2014 Microsoft