SiteMapNode Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Knoten in der hierarchischen Siteübersichtsstruktur dar, z. B. den Knoten, der von der SiteMap-Klasse und den Klassen beschrieben wird, die die abstrakte SiteMapProvider-Klasse implementieren.
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
- Vererbung
-
SiteMapNode
- Implementiert
Beispiele
Dieser Abschnitt enthält zwei Codebeispiele. Im ersten Codebeispiel wird veranschaulicht, wie Sie eine neue Websiteübersichtsknotensammlung erstellen und ihr Elemente hinzufügen. Im zweiten Codebeispiel wird veranschaulicht, wie Siteübersichtsdaten aus einer Textdatei geladen werden.
Im folgenden Codebeispiel wird veranschaulicht, wie Sie den SiteMapNodeCollection Konstruktor verwenden, um eine neue SiteMapNodeCollection Auflistung zu erstellen und ihr dann mit der Add -Methode Elemente hinzuzufügen.
// 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
Im folgenden Codebeispiel wird veranschaulicht, wie eine Textdatei analysiert wird, die SimpleTextSiteMapProvider
Siteübersichtsdaten in durch Trennzeichen getrennten Zeichenfolgen enthält. Den internen Nachverfolgungsauflistungen der -Klasse wird für jede Zeile, die aus der Datei gelesen wird, ein neues SiteMapNode Objekt hinzugefügt.
Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SiteMapProvider-Klasse bereitgestellt wird.
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
Hinweise
Ein SiteMapNode -Objekt stellt eine Websiteseite in einer Siteübersichtsstruktur dar. SiteMapNode Objekte werden von der statischen SiteMap Klasse zur Laufzeit mithilfe eines oder mehrerer Siteübersichtsanbieter geladen, um Standortzuordnungsdaten aus persistentem Speicher in den Arbeitsspeicher zu laden. SiteMapNode -Objekte werden von der -Klasse für die SiteMapNodeItem Verwendung durch Webserversteuerelemente, z. B. das SiteMapPath -Steuerelement, umschlossen.
Die SiteMapNode -Klasse enthält mehrere Eigenschaften, die verwendet werden, um eine einzelne Seite auf einer Website zu beschreiben, einschließlich Eigenschaften, die eine Seite beschreiben, z. B. die UrlEigenschaften , Titleund Description . Während die Url -Eigenschaft von der XmlSiteMapProvider -Klasse verwendet wird, die der Standardwebsitezuordnungsanbieter für ASP.NET ist, als Nachschlageschlüssel in den internen Sammlungen, die der Anbieter zum Nachverfolgen von Knoten verwendet, unterstützt die -Klasse eine grundlegende Key Eigenschaft, die SiteMapNode von Siteübersichtsanbietern zum Nachverfolgen von Knoten verwendet werden kann. Darüber hinaus wird die Url -Eigenschaft von Navigationssteuerelementen verwendet, um Hyperlinks zu Seiten innerhalb einer Navigationsstruktur zu rendern. Die Title -Eigenschaft ist ein Anzeigename für , SiteMapNodeder häufig mit dem HTML-Titel eines Webformulars identisch ist, und wird von Navigationssteuerelementen verwendet, um einfache Bezeichnungen zu rendern. Schließlich steht eine NameValueCollection Auflistung zusätzlicher Attributes Attribute für Siteübersichtsanbieter zur Verfügung, die Objekte verwenden SiteMapNode , aber zusätzliche Eigenschaften erfordern, die in der Basisklasse SiteMapNode nicht verfügbar sind.
Konstruktoren
SiteMapNode(SiteMapProvider, String) |
Initialisiert eine neue Instanz der SiteMapNode-Klasse, wobei mit dem angegebenen |
SiteMapNode(SiteMapProvider, String, String) |
Initialisiert eine neue Instanz der SiteMapNode-Klasse mithilfe der angegebenen URL, eines |
SiteMapNode(SiteMapProvider, String, String, String) |
Initialisiert eine neue Instanz der SiteMapNode-Klasse mithilfe der angegebenen URL, eines |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Initialisiert eine neue Instanz der SiteMapNode-Klasse mithilfe der angegebenen URL, eines |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Initialisiert eine neue Instanz der SiteMapNode Klasse mithilfe des angegebenen Siteübersichtsanbieters, der den Knoten, die URL, den Titel, die Beschreibung, die Rolle, die zusätzlichen Attribute sowie die expliziten und impliziten Ressourcenschlüssel für die Lokalisierung verwaltet. |
Eigenschaften
Attributes |
Ruft eine Auflistung zusätzlicher Attribute neben den stark typisierten Eigenschaften ab, die für die SiteMapNode-Klasse definiert sind, oder legt diese fest. |
ChildNodes |
Ruft alle untergeordneten Knoten des aktuellen SiteMapNode-Objekt vom zugeordneten SiteMapProvider-Anbieter ab oder legt diese fest. |
Description |
Ruft eine Beschreibung für SiteMapNode ab oder legt sie fest. |
HasChildNodes |
Ruft einen Wert ab, der angibt, ob der aktuelle SiteMapNode über untergeordnete Knoten verfügt. |
Item[String] |
Ruft ein benutzerdefiniertes Attribut aus der Attributes-Auflistung bzw. eine Ressourcenzeichenfolge auf der Grundlage des angegebenen Schlüssels ab oder legt dieses bzw. diese fest. |
Key |
Ruft eine Zeichenfolge ab, die einen Suchschlüssel für einen Siteübersichtsknoten darstellt. |
NextSibling |
Ruft den nächsten SiteMapNode-Knoten auf der gleichen hierarchischen Ebene wie der aktuelle Knoten in Bezug auf die ParentNode-Eigenschaft ab (falls ein solcher vorhanden ist). |
ParentNode |
Ruft das SiteMapNode-Objekt ab, das das übergeordnete Element des aktuellen Knotens darstellt, oder legt dieses fest. |
PreviousSibling |
Ruft das vorherige SiteMapNode-Objekt auf der gleichen Ebene wie das aktuelle Objekt in Bezug auf das ParentNode-Objekt ab (sofern ein solches vorhanden ist). |
Provider |
Ruft den SiteMapProvider-Anbieter ab, von dem das SiteMapNode-Objekt verfolgt wird. |
ReadOnly |
Ruft einen Wert ab, der angibt, ob der Siteübersichtsknoten geändert werden kann, oder legt diesen fest. |
ResourceKey |
Ruft den Ressourcenschlüssel ab, mit dem der SiteMapNode lokalisiert wird, oder legt diesen fest. |
Roles |
Ruft die Sammlung von Rollen ab, die dem während der Sicherheitskürzung verwendeten SiteMapNode-Objekt zugeordnet sind, oder legt diese Sammlung fest. |
RootNode |
Ruft den Stammknoten des Stammanbieters in einer Hierarchie von Siteübersichtsanbietern ab. Wenn keine Anbieterhierarchie vorhanden ist, ruft die RootNode-Eigenschaft den Stammknoten des aktuellen Anbieters ab. |
Title |
Ruft den Titel des SiteMapNode-Objekts ab oder legt diesen fest. |
Url |
Ruft die URL der Seite ab, die das SiteMapNode-Objekt darstellt, oder legt diese fest. |
Methoden
Clone() |
Erstellt einen neuen Knoten, der eine Kopie des aktuellen Knotens darstellt. |
Clone(Boolean) |
Erstellt eine neue Kopie, die eine Kopie des aktuellen Knotens darstellt, wobei optional alle übergeordneten Knoten und Vorgängerknoten des aktuellen Knotens geklont werden. |
Equals(Object) |
Ruft einen Wert ab, der angibt, ob der aktuelle SiteMapNode mit dem angegebenen Objekt identisch ist |
GetAllNodes() |
Ruft eine schreibgeschützte Auflistung aller SiteMapNode-Objekte ab, die Nachfolger des aufrufenden Knotens sind, ungeachtet des Trennungsgrades. |
GetDataSourceView(SiteMapDataSource, String) |
Ruft das SiteMapDataSourceView-Objekt ab, das dem aktuellen Knoten zugeordnet ist. |
GetExplicitResourceString(String, String, Boolean) |
Ruft eine lokalisierte Zeichenfolge auf der Grundlage eines zu lokalisierenden SiteMapNode-Attributs, eine zurückzugebende Standardzeichenfolge (wenn keine Ressource gefunden wird) und einen booleschen Wert ab, der angibt, ob eine Ausnahme ausgelöst werden soll, wenn keine Ressource gefunden wird. |
GetHashCode() |
Gibt den Hashcode des SiteMapNode-Objekts zurück |
GetHierarchicalDataSourceView() |
Ruft das SiteMapHierarchicalDataSourceView-Objekt ab, das dem aktuellen Knoten zugeordnet ist. |
GetImplicitResourceString(String) |
Ruft eine lokalisierte Zeichenfolge auf der Grundlage des Attributnamens und der ResourceKey-Eigenschaft ab, die vom SiteMapProvider angegeben wird, mit dessen Hilfe der SiteMapNode verfolgt wird. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IsAccessibleToUser(HttpContext) |
Ruft einen Wert ab, der angibt, ob der angegebene Siteübersichtsknoten vom Benutzer im angegebenen Kontext angezeigt werden kann. |
IsDescendantOf(SiteMapNode) |
Ruft einen Wert ab, der angibt, ob der aktuelle Siteübersichtsknoten ein untergeordneter Knoten oder ein direkter Nachfolger des angegebenen Knotens ist. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Konvertiert den Wert dieser Instanz der SiteMapNode-Klasse in die entsprechende Zeichenfolgendarstellung. |
Explizite Schnittstellenimplementierungen
ICloneable.Clone() |
Erstellt einen neuen Knoten, der eine Kopie des aktuellen Knotens darstellt. Eine Beschreibung dieses Elements finden Sie unter Clone(). |
IHierarchyData.GetChildren() |
Ruft die hierarchischen untergeordneten Datenelemente des aktuellen Elements ab. Eine Beschreibung dieses Elements finden Sie unter GetChildren(). |
IHierarchyData.GetParent() |
Ruft das hierarchisch übergeordnete Element des aktuellen Elements ab. Eine Beschreibung dieses Elements finden Sie unter GetParent(). |
IHierarchyData.HasChildren |
Ruft einen Wert ab, der angibt, ob das aktuelle SiteMapNode-Objekt über untergeordnete Knoten verfügt. Eine Beschreibung dieses Elements finden Sie unter HasChildren. |
IHierarchyData.Item |
Ruft das hierarchische Datenelement ab. Eine Beschreibung dieses Elements finden Sie unter Item. |
IHierarchyData.Path |
Ruft den Pfad des hierarchischen Datenelements ab. Eine Beschreibung dieses Elements finden Sie unter Path. |
IHierarchyData.Type |
Ruft eine Zeichenfolge ab, die den Typnamen des hierarchischen Datenelements darstellt. Eine Beschreibung dieses Elements finden Sie unter Type. |
INavigateUIData.Description |
Ruft die Description-Eigenschaft des Siteübersichtsknotens ab. Eine Beschreibung dieses Elements finden Sie unter Description. |
INavigateUIData.Name |
Ruft die Title-Eigenschaft des Siteübersichtsknotens ab. Eine Beschreibung dieses Elements finden Sie unter Name. |
INavigateUIData.NavigateUrl |
Ruft die Url-Eigenschaft des Siteübersichtsknotens ab. Eine Beschreibung dieses Elements finden Sie unter NavigateUrl. |
INavigateUIData.Value |
Ruft die Title-Eigenschaft des Siteübersichtsknotens ab. Eine Beschreibung dieses Elements finden Sie unter Value. |