SiteMapNode Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en nod i den hierarkiska platsöversiktsstrukturen, till exempel den SiteMap som beskrivs av klassen och klasserna som implementerar den abstrakta SiteMapProvider klassen.
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
- Arv
-
SiteMapNode
- Implementeringar
Exempel
Det här avsnittet innehåller två kodexempel. Det första kodexemplet visar hur du skapar en ny webbplatsmappningsnodsamling och lägger till element i den. Det andra kodexemplet visar hur du läser in webbplatsöversiktsdata från en textfil.
Följande kodexempel visar hur du använder SiteMapNodeCollection konstruktorn för att skapa en ny SiteMapNodeCollection samling och sedan lägger till element i den Add med -metoden.
// 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
Följande kodexempel visar hur SimpleTextSiteMapProvider parsar en textfil som innehåller webbplatsöversiktsdata i kommaavgränsade strängar. Ett nytt SiteMapNode objekt läggs till i klassens interna spårningssamlingar för varje rad som läse från filen.
Det här kodexemplet är en del av ett större exempel för SiteMapProvider klassen.
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
Kommentarer
Ett SiteMapNode objekt representerar en webbplatssida i en webbplatsöversiktsstruktur. SiteMapNode objekt läses in av den statiska SiteMap klassen vid körning med hjälp av en eller flera webbplatskartproviders för att läsa in platsmappningsdata från beständig lagring till minnet. SiteMapNode objekt omsluts av SiteMapNodeItem klassen för användning av webbserverkontroller, till exempel SiteMapPath kontrollen.
Klassen SiteMapNode innehåller flera egenskaper som används för att beskriva en enskild sida på en webbplats, inklusive egenskaper som beskriver en sida, till Urlexempel egenskaperna , Titleoch Description . Medan egenskapen Url används av klassen XmlSiteMapProvider, som är standardplatsmappningsprovidern för ASP.NET, som en uppslagsnyckel i de interna samlingar som providern använder för att spåra noder, stöder klassen SiteMapNode en grundläggande egenskap Key som kan användas av platsmappningsproviders för att spåra noder. Dessutom används egenskapen Url av navigeringskontroller för att återge hyperlänkar till sidor i en navigeringsstruktur. Egenskapen Title är ett eget namn för SiteMapNode, är ofta samma som HTML-rubriken för ett webbformulär och används av navigeringskontroller för att återge enkla etiketter. Slutligen är en NameValueCollection samling ytterligare Attributes attribut tillgängliga för webbplatsöversiktsleverantörer som använder SiteMapNode objekt, men som kräver ytterligare egenskaper som inte är tillgängliga i basklassen SiteMapNode .
Konstruktorer
| Name | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Initierar en ny instans av SiteMapNode klassen med den angivna webbplatsöversiktsprovidern som hanterar noden, URL:en, rubrik, beskrivning, roller, ytterligare attribut och explicita och implicita resursnycklar för lokalisering. |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en |
| SiteMapNode(SiteMapProvider, String, String, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en |
| SiteMapNode(SiteMapProvider, String, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en |
| SiteMapNode(SiteMapProvider, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna |
Egenskaper
| Name | Description |
|---|---|
| Attributes |
Hämtar eller anger en samling ytterligare attribut utöver de starkt skrivna egenskaper som definieras för SiteMapNode klassen. |
| ChildNodes |
Hämtar eller anger alla underordnade noder i det aktuella SiteMapNode objektet från den associerade SiteMapProvider providern. |
| Description |
Hämtar eller anger en beskrivning för SiteMapNode. |
| HasChildNodes |
Hämtar ett värde som anger om den aktuella SiteMapNode har några underordnade noder. |
| Item[String] |
Hämtar eller anger ett anpassat attribut från Attributes samlingen eller en resurssträng baserat på den angivna nyckeln. |
| Key |
Hämtar en sträng som representerar en uppslagsnyckel för en platsmappningsnod. |
| NextSibling |
Hämtar nästa SiteMapNode nod på samma hierarkiska nivå som den aktuella, i förhållande till ParentNode egenskapen (om en sådan finns). |
| ParentNode |
Hämtar eller anger det SiteMapNode objekt som är överordnat för den aktuella noden. |
| PreviousSibling |
Hämtar föregående SiteMapNode objekt på samma nivå som det aktuella objektet i förhållande till ParentNode objektet (om det finns ett). |
| Provider |
Hämtar providern SiteMapProviderSiteMapNode som objektet spåras av. |
| ReadOnly |
Hämtar eller anger ett värde som anger om platsmappningsnoden kan ändras. |
| ResourceKey |
Hämtar eller anger resursnyckeln som används för att lokalisera SiteMapNode. |
| Roles |
Hämtar eller anger en samling roller som är associerade med SiteMapNode objektet, som används under säkerhetstrimningen. |
| RootNode |
Hämtar rotnoden för rotprovidern i en platsöversiktsproviderhierarki. Om det inte finns RootNode någon providerhierarki hämtar egenskapen rotnoden för den aktuella providern. |
| Title |
Hämtar eller anger objektets SiteMapNode rubrik. |
| Url |
Hämtar eller anger URL:en för sidan som SiteMapNode objektet representerar. |
Metoder
| Name | Description |
|---|---|
| Clone() |
Skapar en ny nod som är en kopia av den aktuella noden. |
| Clone(Boolean) |
Skapar en ny kopia som är en kopia av den aktuella noden, om du vill klona alla överordnade och överordnade noder för den aktuella noden. |
| Equals(Object) |
Hämtar ett värde som anger om den aktuella är SiteMapNode identisk med det angivna objektet. |
| GetAllNodes() |
Hämtar en skrivskyddad samling med alla SiteMapNode objekt som är underordnade till den anropande noden, oavsett separationsgrad. |
| GetDataSourceView(SiteMapDataSource, String) |
Hämtar objektet SiteMapDataSourceView som är associerat med den aktuella noden. |
| GetExplicitResourceString(String, String, Boolean) |
Hämtar en lokaliserad sträng baserat på ett SiteMapNode attribut som ska lokaliseras, en standardsträng som ska returneras om ingen resurs hittas och ett booleskt värde som anger om ett undantag ska utlösas om ingen resurs hittas. |
| GetHashCode() |
Returnerar hash-koden för SiteMapNode objektet. |
| GetHierarchicalDataSourceView() |
Hämtar objektet SiteMapHierarchicalDataSourceView som är associerat med den aktuella noden. |
| GetImplicitResourceString(String) |
Hämtar en lokaliserad sträng baserat på attributnamnet och ResourceKey egenskapen som anges av SiteMapProvider den SiteMapNode som spåras. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IsAccessibleToUser(HttpContext) |
Hämtar ett värde som anger om den angivna platsöversiktsnoden kan visas av användaren i den angivna kontexten. |
| IsDescendantOf(SiteMapNode) |
Hämtar ett värde som anger om den aktuella platsöversiktsnoden är underordnad eller en direkt underordnad till den angivna noden. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Konverterar värdet för den här instansen SiteMapNode av klassen till motsvarande strängrepresentation. |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICloneable.Clone() |
Skapar en ny nod som är en kopia av den aktuella noden. En beskrivning av den här medlemmen finns i Clone(). |
| IHierarchyData.GetChildren() |
Hämtar de hierarkiska underordnade dataobjekten för det aktuella objektet. En beskrivning av den här medlemmen finns i GetChildren(). |
| IHierarchyData.GetParent() |
Hämtar det aktuella objektets hierarkiska överordnad. En beskrivning av den här medlemmen finns i GetParent(). |
| IHierarchyData.HasChildren |
Hämtar ett värde som anger om det aktuella SiteMapNode objektet har några underordnade noder. En beskrivning av den här medlemmen finns i HasChildren. |
| IHierarchyData.Item |
Hämtar det hierarkiska dataobjektet. En beskrivning av den här medlemmen finns i Item. |
| IHierarchyData.Path |
Hämtar sökvägen till det hierarkiska dataobjektet. En beskrivning av den här medlemmen finns i Path. |
| IHierarchyData.Type |
Hämtar en sträng som representerar typnamnet för det hierarkiska dataobjektet. En beskrivning av den här medlemmen finns i Type. |
| INavigateUIData.Description |
Hämtar egenskapen för Description platsmappningsnoden. En beskrivning av den här medlemmen finns i Description. |
| INavigateUIData.Name |
Hämtar egenskapen för Title platsmappningsnoden. En beskrivning av den här medlemmen finns i Name. |
| INavigateUIData.NavigateUrl |
Hämtar egenskapen för Url platsmappningsnoden. En beskrivning av den här medlemmen finns i NavigateUrl. |
| INavigateUIData.Value |
Hämtar egenskapen för Title platsmappningsnoden. En beskrivning av den här medlemmen finns i Value. |