SiteMapNode Constructor (SiteMapProvider, String, String, String, String)
Initializes a new instance of the SiteMapNode class using the specified URL, a key to identify the page that the node represents, a title and description, and the site map provider that manages the node.
Assembly: System.Web (in System.Web.dll)
Public Sub New ( provider As SiteMapProvider, key As String, url As String, title As String, description As String )
Parameters
- provider
-
Type:
System.Web.SiteMapProvider
The SiteMapProvider with which the node is associated.
- key
-
Type:
System.String
A provider-specific lookup key.
- url
-
Type:
System.String
The URL of the page that the node represents within the site.
- title
-
Type:
System.String
A label for the node, often displayed by navigation controls.
- description
-
Type:
System.String
A description of the page that the node represents.
| Exception | Condition |
|---|---|
| ArgumentNullException |
The XmlSiteMapProvider class, which is the default SiteMapProvider provider implementation for ASP.NET, uses the SiteMapNode.Url property as a lookup key, if one is provided for the node (if a URL is not provided, a tracking identifier is generated for the node). Therefore, any SiteMapNode object that provides a URL and is used by the XmlSiteMapProvider must have a unique URL within the scope of the provider.
If no title or description is provided, calls to the Title or Description properties return an String.Empty field.
The following code example demonstrates how to use the SiteMapNode constructor to create a SiteMapNode object by parsing data from a simple text file to build a site map in memory.
This code example is part of a larger example provided for the abstract SiteMapProvider class.
Protected Overridable Sub LoadSiteMapFromStore() Dim pathToOpen As String SyncLock Me ' If a root node exists, LoadSiteMapFromStore has already ' been called, and the method can return. If Not (aRootNode Is Nothing) Then Return Else pathToOpen = HttpContext.Current.Server.MapPath("~" & "\\" & sourceFilename) If File.Exists(pathToOpen) Then ' Open the file to read from. Dim sr As StreamReader = File.OpenText(pathToOpen) Try ' Clear the state of the collections and aRootNode aRootNode = Nothing siteMapNodes.Clear() childParentRelationship.Clear() ' Parse the file and build the site map Dim s As String = "" Dim nodeValues As String() = Nothing Dim temp As SiteMapNode = Nothing Do s = sr.ReadLine() If Not s Is Nothing Then ' Build the various SiteMapNode objects and add ' them to the ArrayList collections. The format used ' is: URL,TITLE,DESCRIPTION,PARENTURL nodeValues = s.Split(","c) temp = New SiteMapNode(Me, _ HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _ HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(0), _ nodeValues(1), _ nodeValues(2)) ' Is this a root node yet? If aRootNode Is Nothing AndAlso _ (nodeValues(3) Is Nothing OrElse _ nodeValues(3) = String.Empty) Then aRootNode = temp ' If not the root node, add the node to the various collections. Else siteMapNodes.Add(New DictionaryEntry(temp.Url, temp)) ' The parent node has already been added to the collection. Dim parentNode As SiteMapNode = _ FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath & "/" & nodeValues(3)) If Not (parentNode Is Nothing) Then childParentRelationship.Add(New DictionaryEntry(temp.Url, parentNode)) Else Throw New Exception("Parent node not found for current node.") End If End If End If Loop Until s Is Nothing Finally sr.Close() End Try Else Throw New Exception("File not found") End If End If End SyncLock Return End Sub 'LoadSiteMapFromStore End Class 'SimpleTextSiteMapProvider
Available since 2.0