SiteMapNode Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Vertegenwoordigt een knooppunt in de hiërarchische siteoverzichtstructuur, zoals die wordt beschreven door de SiteMap klasse en klassen die de abstracte SiteMapProvider klasse implementeren.
public ref class SiteMapNode : ICloneable, System::Web::UI::IHierarchyData, System::Web::UI::INavigateUIData
public class SiteMapNode : ICloneable, System.Web.UI.IHierarchyData, System.Web.UI.INavigateUIData
type SiteMapNode = class
interface ICloneable
interface IHierarchyData
interface INavigateUIData
Public Class SiteMapNode
Implements ICloneable, IHierarchyData, INavigateUIData
- Overname
-
SiteMapNode
- Implementeringen
Voorbeelden
Deze sectie bevat twee codevoorbeelden. In het eerste codevoorbeeld ziet u hoe u een nieuwe verzameling siteoverzichtknooppunten maakt en er elementen aan toevoegt. In het tweede codevoorbeeld ziet u hoe u siteoverzichtsgegevens uit een tekstbestand laadt.
In het volgende codevoorbeeld ziet u hoe u de SiteMapNodeCollection constructor gebruikt om een nieuwe SiteMapNodeCollection verzameling te maken en vervolgens elementen eraan toevoegt met de Add methode.
// The LoadSiteMapData() method loads site navigation
// data from persistent storage into a DataTable.
DataTable siteMap = LoadSiteMapData();
// Create a SiteMapNodeCollection.
SiteMapNodeCollection nodes = new SiteMapNodeCollection();
// Create a SiteMapNode and add it to the collection.
SiteMapNode tempNode;
DataRow row;
int index = 0;
while (index < siteMap.Rows.Count)
{
row = siteMap.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;
}
' 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
In het volgende codevoorbeeld ziet u hoe het SimpleTextSiteMapProvider tekstbestand dat siteoverzichtgegevens bevat, parseert in door komma's gescheiden tekenreeksen. Er wordt een nieuw SiteMapNode object toegevoegd aan de verzamelingen voor interne tracering van de klasse voor elke regel die uit het bestand wordt gelezen.
Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de SiteMapProvider klasse.
protected virtual void LoadSiteMapFromStore()
{
string pathToOpen;
lock (this)
{
// If a root node exists, LoadSiteMapFromStore has already
// been called, and the method can return.
if (rootNode != null)
{
return;
}
else
{
pathToOpen = HttpContext.Current.Server.MapPath("~" + "\\" + sourceFilename);
if (File.Exists(pathToOpen))
{
// Open the file to read from.
using (StreamReader sr = File.OpenText(pathToOpen))
{
// Clear the state of the collections and rootNode
rootNode = null;
siteMapNodes.Clear();
childParentRelationship.Clear();
// Parse the file and build the site map
string s = "";
string[] nodeValues = null;
SiteMapNode temp = null;
while ((s = sr.ReadLine()) != null)
{
// Build the various SiteMapNode objects and add
// them to the ArrayList collections. The format used
// is: URL,TITLE,DESCRIPTION,PARENTURL
nodeValues = s.Split(',');
temp = new SiteMapNode(this,
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[0],
nodeValues[1],
nodeValues[2]);
// Is this a root node yet?
if (null == rootNode &&
string.IsNullOrEmpty(nodeValues[3]))
{
rootNode = 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.
SiteMapNode parentNode =
FindSiteMapNode(HttpRuntime.AppDomainAppVirtualPath + "/" + nodeValues[3]);
if (parentNode != null)
{
childParentRelationship.Add(new DictionaryEntry(temp.Url, parentNode));
}
else
{
throw new Exception("Parent node not found for current node.");
}
}
}
}
}
else
{
throw new Exception("File not found");
}
}
}
return;
}
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
End Class
Opmerkingen
Een SiteMapNode object vertegenwoordigt een websitepagina in een siteoverzichtstructuur. SiteMapNode objecten worden tijdens runtime geladen door de statische SiteMap klasse met behulp van een of meer siteoverzichtproviders om siteoverzichtgegevens van permanente opslag in het geheugen te laden. SiteMapNode objecten worden verpakt door de SiteMapNodeItem klasse voor gebruik door webserverbesturingselementen, zoals het SiteMapPath besturingselement.
De SiteMapNode klasse bevat verschillende eigenschappen die worden gebruikt om één pagina op een website te beschrijven, inclusief eigenschappen die een pagina beschrijven, zoals de Url, Titleen Description eigenschappen. Terwijl de eigenschap Url wordt gebruikt door de klasse XmlSiteMapProvider, de standaardsiteoverzichtprovider voor ASP.NET, als zoeksleutel in de interne verzamelingen die de provider gebruikt om knooppunten bij te houden, ondersteunt de SiteMapNode-klasse een eenvoudige Key eigenschap die door siteoverzichtproviders kan worden gebruikt om knooppunten bij te houden. Daarnaast wordt de Url eigenschap gebruikt door navigatiebesturingselementen om hyperlinks naar pagina's in een navigatiestructuur weer te geven. De Title eigenschap is een beschrijvende naam voor de SiteMapNode, is vaak hetzelfde als de HTML-titel van een webformulier en wordt gebruikt door navigatiebesturingselementen om eenvoudige labels weer te geven. Ten slotte is er een NameValueCollection verzameling extra Attributes kenmerken beschikbaar voor siteoverzichtproviders die objecten gebruiken SiteMapNode , maar aanvullende eigenschappen vereisen die niet beschikbaar zijn in de basisklasse SiteMapNode .
Constructors
| Name | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven siteoverzichtprovider waarmee het knooppunt, de URL, de titel, de beschrijving, de rollen, aanvullende kenmerken en expliciete en impliciete resourcesleutels voor lokalisatie worden beheerd. |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een |
| SiteMapNode(SiteMapProvider, String, String, String) |
Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een |
| SiteMapNode(SiteMapProvider, String, String) |
Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven URL, een |
| SiteMapNode(SiteMapProvider, String) |
Initialiseert een nieuw exemplaar van de SiteMapNode klasse met behulp van de opgegeven |
Eigenschappen
| Name | Description |
|---|---|
| Attributes |
Hiermee haalt u een verzameling extra kenmerken op of stelt u deze in buiten de sterk getypte eigenschappen die voor de SiteMapNode klasse zijn gedefinieerd. |
| ChildNodes |
Hiermee worden alle onderliggende knooppunten van het huidige SiteMapNode object opgehaald of ingesteld van de bijbehorende SiteMapProvider provider. |
| Description |
Hiermee haalt of stelt u een beschrijving voor de SiteMapNode. |
| HasChildNodes |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige SiteMapNode onderliggende knooppunten heeft. |
| Item[String] |
Hiermee haalt u een aangepast kenmerk op uit de Attributes verzameling of een resourcereeks op basis van de opgegeven sleutel. |
| Key |
Hiermee haalt u een tekenreeks op die een zoeksleutel vertegenwoordigt voor een siteoverzichtknooppunt. |
| NextSibling |
Hiermee haalt u het volgende SiteMapNode knooppunt op hetzelfde hiërarchische niveau op als het huidige, ten opzichte van de ParentNode eigenschap (indien aanwezig). |
| ParentNode |
Hiermee wordt het SiteMapNode object opgehaald of ingesteld dat het bovenliggende element van het huidige knooppunt is. |
| PreviousSibling |
Hiermee haalt u het vorige SiteMapNode object op hetzelfde niveau als het huidige object op ten opzichte van het ParentNode object (indien aanwezig). |
| Provider |
Hiermee haalt u de SiteMapProvider provider op waarmee het SiteMapNode object wordt bijgehouden. |
| ReadOnly |
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of het siteoverzichtknooppunt kan worden gewijzigd. |
| ResourceKey |
Hiermee haalt u de resourcesleutel op die wordt gebruikt om de SiteMapNode. |
| Roles |
Hiermee wordt een verzameling rollen opgehaald of ingesteld die aan het object zijn gekoppeld, die tijdens het SiteMapNode bijsnijden van de beveiliging worden gebruikt. |
| RootNode |
Hiermee haalt u het hoofdknooppunt van de hoofdprovider op in een siteoverzichtproviderhiërarchie. Als er geen providerhiërarchie bestaat, krijgt de RootNode eigenschap het hoofdknooppunt van de huidige provider. |
| Title |
Hiermee haalt u de titel van het object op of stelt u deze SiteMapNode in. |
| Url |
Hiermee haalt u de URL op van de pagina die het object vertegenwoordigt of stelt u deze SiteMapNode in. |
Methoden
| Name | Description |
|---|---|
| Clone() |
Hiermee maakt u een nieuw knooppunt dat een kopie van het huidige knooppunt is. |
| Clone(Boolean) |
Hiermee maakt u een nieuwe kopie die een kopie is van het huidige knooppunt, optioneel alle bovenliggende en bovenliggende knooppunten van het huidige knooppunt klonen. |
| Equals(Object) |
Hiermee wordt een waarde opgehaald die aangeeft of de huidige SiteMapNode identiek is aan het opgegeven object. |
| GetAllNodes() |
Hiermee wordt een alleen-lezen verzameling opgehaald van alle SiteMapNode objecten die afstammelingen van het aanroepende knooppunt zijn, ongeacht de mate van scheiding. |
| GetDataSourceView(SiteMapDataSource, String) |
Hiermee wordt het SiteMapDataSourceView object opgehaald dat is gekoppeld aan het huidige knooppunt. |
| GetExplicitResourceString(String, String, Boolean) |
Hiermee wordt een gelokaliseerde tekenreeks opgehaald op basis van een SiteMapNode kenmerk om te lokaliseren, een standaardtekenreeks die moet worden geretourneerd als er geen resource wordt gevonden en een Booleaanse waarde die aangeeft of er een uitzondering moet worden gegenereerd als er geen resource wordt gevonden. |
| GetHashCode() |
Retourneert de hash-code van het SiteMapNode object. |
| GetHierarchicalDataSourceView() |
Hiermee wordt het SiteMapHierarchicalDataSourceView object opgehaald dat is gekoppeld aan het huidige knooppunt. |
| GetImplicitResourceString(String) |
Hiermee haalt u een gelokaliseerde tekenreeks op op basis van de kenmerknaam en ResourceKey eigenschap die wordt opgegeven door de SiteMapProvider eigenschap waarmee het SiteMapNode wordt bijgehouden. |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| IsAccessibleToUser(HttpContext) |
Hiermee wordt een waarde opgehaald die aangeeft of het opgegeven siteoverzichtknooppunt kan worden weergegeven door de gebruiker in de opgegeven context. |
| IsDescendantOf(SiteMapNode) |
Hiermee wordt een waarde opgehaald die aangeeft of het huidige siteoverzichtknooppunt een onderliggend item of een directe afstammeling van het opgegeven knooppunt is. |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Converteert de waarde van dit exemplaar van de SiteMapNode klasse naar de equivalente tekenreeksweergave. |
Expliciete interface-implementaties
| Name | Description |
|---|---|
| ICloneable.Clone() |
Hiermee maakt u een nieuw knooppunt dat een kopie van het huidige knooppunt is. Zie voor een beschrijving van dit lid Clone(). |
| IHierarchyData.GetChildren() |
Hiermee worden de hiërarchische onderliggende gegevensitems van het huidige item opgehaald. Zie voor een beschrijving van dit lid GetChildren(). |
| IHierarchyData.GetParent() |
Hiermee wordt het hiërarchische bovenliggende item van het huidige item opgehaald. Zie voor een beschrijving van dit lid GetParent(). |
| IHierarchyData.HasChildren |
Hiermee wordt een waarde opgehaald die aangeeft of het huidige SiteMapNode object onderliggende knooppunten heeft. Zie voor een beschrijving van dit lid HasChildren. |
| IHierarchyData.Item |
Hiermee haalt u het hiërarchische gegevensitem op. Zie voor een beschrijving van dit lid Item. |
| IHierarchyData.Path |
Hiermee wordt het pad van het hiërarchische gegevensitem opgehaald. Zie voor een beschrijving van dit lid Path. |
| IHierarchyData.Type |
Hiermee haalt u een tekenreeks op die de typenaam van het hiërarchische gegevensitem vertegenwoordigt. Zie voor een beschrijving van dit lid Type. |
| INavigateUIData.Description |
Hiermee haalt u de Description eigenschap van het siteoverzichtknooppunt op. Zie voor een beschrijving van dit lid Description. |
| INavigateUIData.Name |
Hiermee haalt u de Title eigenschap van het siteoverzichtknooppunt op. Zie voor een beschrijving van dit lid Name. |
| INavigateUIData.NavigateUrl |
Hiermee haalt u de Url eigenschap van het siteoverzichtknooppunt op. Zie voor een beschrijving van dit lid NavigateUrl. |
| INavigateUIData.Value |
Hiermee haalt u de Title eigenschap van het siteoverzichtknooppunt op. Zie voor een beschrijving van dit lid Value. |