SiteMapNode Konstruktoren
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.
Initialisiert eine neue Instanz der SiteMapNode Klasse und ordnet sie dem angegebenen SiteMapProvider Objekt zu.
Überlädt
| Name | Beschreibung |
|---|---|
| SiteMapNode(SiteMapProvider, String) |
Initialisiert eine neue Instanz der SiteMapNode Klasse, wobei die angegebene |
| SiteMapNode(SiteMapProvider, String, String) |
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine |
| SiteMapNode(SiteMapProvider, String, String, String) |
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine |
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Initialisiert eine neue Instanz der SiteMapNode Klasse mithilfe des angegebenen Websitezuordnungsanbieters, der den Knoten, die URL, den Titel, die Beschreibung, die Rollen, zusätzliche Attribute und explizite und implizite Ressourcenschlüssel für die Lokalisierung verwaltet. |
SiteMapNode(SiteMapProvider, String)
Initialisiert eine neue Instanz der SiteMapNode Klasse, wobei die angegebene key Verwendet wird, um die Seite zu identifizieren, die der Knoten darstellt, und den Websitezuordnungsanbieter, der den Knoten verwaltet.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key);
public SiteMapNode(System.Web.SiteMapProvider provider, string key);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String)
Parameter
- provider
- SiteMapProvider
Der SiteMapProvider Knoten, dem der Knoten zugeordnet ist.
- key
- String
Ein anbieterspezifischer Nachschlageschlüssel.
Ausnahmen
Hinweise
Die XmlSiteMapProvider Klasse, bei der es sich um die Standardanbieterimplementierung SiteMapProvider für ASP.NET handelt, verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel, wenn eine für den Knoten bereitgestellt wird (wenn keine URL angegeben wird, wird für den Knoten ein Nachverfolgungsbezeichner generiert). Daher muss jedes SiteMapNode Steuerelement, das eine URL bereitstellt und vom XmlSiteMapProvider Anbieter verwendet wird, über eine eindeutige URL im Bereich des Anbieters verfügen.
Gilt für:
SiteMapNode(SiteMapProvider, String, String)
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine key , um die Seite zu identifizieren, die der Knoten darstellt, und den Websitezuordnungsanbieter, der den Knoten verwaltet.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String)
Parameter
- provider
- SiteMapProvider
Der SiteMapProvider Knoten, dem der Knoten zugeordnet ist.
- key
- String
Ein anbieterspezifischer Nachschlageschlüssel.
- url
- String
Die URL der Seite, die der Knoten innerhalb der Website darstellt.
Ausnahmen
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie der SiteMapNodeCollection Konstruktor zum Erstellen einer neuen SiteMapNodeCollection Auflistung verwendet und anschließend elemente mit der Add Methode hinzugefügt wird.
// 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
Hinweise
Die XmlSiteMapProvider Klasse, bei der es sich um die Standardanbieterimplementierung SiteMapProvider für ASP.NET handelt, verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel, wenn eine für den Knoten bereitgestellt wird (wenn keine URL angegeben wird, wird für den Knoten ein Nachverfolgungsbezeichner generiert). Daher muss jedes SiteMapNode Objekt, das eine URL bereitstellt und von der XmlSiteMapProvider verwendet wird, eine eindeutige URL innerhalb des Bereichs des Anbieters aufweisen.
Gilt für:
SiteMapNode(SiteMapProvider, String, String, String)
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine key , um die Seite zu identifizieren, die der Knoten darstellt, einen Titel und den Websitezuordnungsanbieter, der den Knoten verwaltet.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String)
Parameter
- provider
- SiteMapProvider
Der SiteMapProvider Knoten, dem der Knoten zugeordnet ist.
- key
- String
Ein anbieterspezifischer Nachschlageschlüssel.
- url
- String
Die URL der Seite, die der Knoten innerhalb der Website darstellt.
- title
- String
Eine Beschriftung für den Knoten, die häufig von Navigationssteuerelementen angezeigt wird.
Ausnahmen
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie der SiteMapNode Konstruktor zum Erstellen einer neuen Instanz der SiteMapNode Klasse verwendet wird. Der Knoten wird mit Werten aus einer Microsoft Access-Datenbankzeile initialisiert.
Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die BuildSiteMap Methode bereitgestellt wird.
OleDbCommand^ rootNodeCommand = gcnew OleDbCommand
("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection);
OleDbDataReader^ rootNodeReader = rootNodeCommand->ExecuteReader();
if ( rootNodeReader->HasRows )
{
rootNodeReader->Read();
rootNodeId = rootNodeReader->GetInt32( 0 );
// Create a SiteMapNode that references the current StaticSiteMapProvider.
rootNode = gcnew SiteMapNode(this, rootNodeId.ToString(),
rootNodeReader->GetString( 1 ),rootNodeReader->GetString( 2 ));
}
else
return nullptr;
rootNodeReader->Close();
OleDbCommand rootNodeCommand =
new OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL",
accessConnection);
OleDbDataReader rootNodeReader = rootNodeCommand.ExecuteReader();
if(rootNodeReader.HasRows) {
rootNodeReader.Read();
rootNodeId = rootNodeReader.GetInt32(0);
// Create a SiteMapNode that references the current StaticSiteMapProvider.
rootNode = new SiteMapNode(this,
rootNodeId.ToString(),
rootNodeReader.GetString(1),
rootNodeReader.GetString(2));
}
else
{
return null;
}
rootNodeReader.Close();
Dim rootNodeCommand As New OleDbCommand("SELECT nodeid, url, name FROM SiteMap WHERE parentnodeid IS NULL", accessConnection)
Dim rootNodeReader As OleDbDataReader = rootNodeCommand.ExecuteReader()
If rootNodeReader.HasRows Then
rootNodeReader.Read()
rootNodeId = rootNodeReader.GetInt32(0)
' Create a SiteMapNode that references the current StaticSiteMapProvider.
aRootNode = New SiteMapNode(Me, rootNodeId.ToString(), rootNodeReader.GetString(1), rootNodeReader.GetString(2))
Else
Return Nothing
End If
rootNodeReader.Close()
Hinweise
Die XmlSiteMapProvider Klasse, bei der es sich um die Standardanbieterimplementierung SiteMapProvider für ASP.NET handelt, verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel, wenn eine für den Knoten bereitgestellt wird (wenn keine URL angegeben wird, wird für den Knoten ein Nachverfolgungsbezeichner generiert). Daher muss jedes SiteMapNode Objekt, das eine URL bereitstellt und von der XmlSiteMapProvider verwendet wird, eine eindeutige URL innerhalb des Bereichs des Anbieters aufweisen.
Wenn keine title angegeben wird, geben Aufrufe der Title Eigenschaft das String.Empty Feld zurück.
Gilt für:
SiteMapNode(SiteMapProvider, String, String, String, String)
Initialisiert eine neue Instanz der Klasse mithilfe der SiteMapNode angegebenen URL, eine key , um die Seite zu identifizieren, die der Knoten darstellt, einen Titel und eine Beschreibung sowie den Websitezuordnungsanbieter, der den Knoten verwaltet.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title, string description);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String)
Parameter
- provider
- SiteMapProvider
Der SiteMapProvider Knoten, dem der Knoten zugeordnet ist.
- key
- String
Ein anbieterspezifischer Nachschlageschlüssel.
- url
- String
Die URL der Seite, die der Knoten innerhalb der Website darstellt.
- title
- String
Eine Beschriftung für den Knoten, die häufig von Navigationssteuerelementen angezeigt wird.
- description
- String
Eine Beschreibung der Seite, die der Knoten darstellt.
Ausnahmen
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe des SiteMapNode Konstruktors ein SiteMapNode Objekt erstellen, indem Daten aus einer einfachen Textdatei analysiert werden, um eine Websitezuordnung im Arbeitsspeicher zu erstellen.
Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die abstrakte 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
Die XmlSiteMapProvider Klasse, bei der es sich um die Standardanbieterimplementierung SiteMapProvider für ASP.NET handelt, verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel, wenn eine für den Knoten bereitgestellt wird (wenn keine URL angegeben wird, wird für den Knoten ein Nachverfolgungsbezeichner generiert). Daher muss jedes SiteMapNode Objekt, das eine URL bereitstellt und von der XmlSiteMapProvider verwendet wird, eine eindeutige URL innerhalb des Bereichs des Anbieters aufweisen.
Wenn keine title oder description nicht angegeben wird, geben Aufrufe der Title Felder oder Description Eigenschaften ein String.Empty Feld zurück.
Weitere Informationen
Gilt für:
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)
Initialisiert eine neue Instanz der SiteMapNode Klasse mithilfe des angegebenen Websitezuordnungsanbieters, der den Knoten, die URL, den Titel, die Beschreibung, die Rollen, zusätzliche Attribute und explizite und implizite Ressourcenschlüssel für die Lokalisierung verwaltet.
public:
SiteMapNode(System::Web::SiteMapProvider ^ provider, System::String ^ key, System::String ^ url, System::String ^ title, System::String ^ description, System::Collections::IList ^ roles, System::Collections::Specialized::NameValueCollection ^ attributes, System::Collections::Specialized::NameValueCollection ^ explicitResourceKeys, System::String ^ implicitResourceKey);
public SiteMapNode(System.Web.SiteMapProvider provider, string key, string url, string title, string description, System.Collections.IList roles, System.Collections.Specialized.NameValueCollection attributes, System.Collections.Specialized.NameValueCollection explicitResourceKeys, string implicitResourceKey);
new System.Web.SiteMapNode : System.Web.SiteMapProvider * string * string * string * string * System.Collections.IList * System.Collections.Specialized.NameValueCollection * System.Collections.Specialized.NameValueCollection * string -> System.Web.SiteMapNode
Public Sub New (provider As SiteMapProvider, key As String, url As String, title As String, description As String, roles As IList, attributes As NameValueCollection, explicitResourceKeys As NameValueCollection, implicitResourceKey As String)
Parameter
- provider
- SiteMapProvider
Der SiteMapProvider Knoten, dem der Knoten zugeordnet ist.
- key
- String
Ein anbieterspezifischer Nachschlageschlüssel.
- url
- String
Die URL der Seite, die der Knoten innerhalb der Website darstellt.
- title
- String
Eine Beschriftung für den Knoten, die häufig von Navigationssteuerelementen angezeigt wird.
- description
- String
Eine Beschreibung der Seite, die der Knoten darstellt.
- roles
- IList
Eine IList Von Rollen, die das Anzeigen der Seite durch die SiteMapNode.
- attributes
- NameValueCollection
Eine NameValueCollection von zusätzlichen Attributen, die zum Initialisieren der SiteMapNode.
- explicitResourceKeys
- NameValueCollection
Eine NameValueCollection von expliziten Ressourcenschlüsseln, die für die Lokalisierung verwendet werden.
- implicitResourceKey
- String
Ein impliziter Ressourcenschlüssel, der für die Lokalisierung verwendet wird.
Ausnahmen
Hinweise
Die XmlSiteMapProvider Klasse, bei der es sich um die Standardanbieterimplementierung SiteMapProvider für ASP.NET handelt, verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel, wenn eine für den Knoten bereitgestellt wird (wenn keine URL angegeben wird, wird für den Knoten ein Nachverfolgungsbezeichner generiert). Daher muss jedes SiteMapNode Objekt, das eine URL bereitstellt und von der XmlSiteMapProvider verwendet wird, eine eindeutige URL innerhalb des Bereichs des Anbieters aufweisen.
Die NameValueCollection Sammlung von Attributen, mit denen das SiteMapNode Objekt erstellt wird, ist über die Attributes Eigenschaft verfügbar und erleichtert das Anwenden zusätzlicher Attribute auf einen Websitezuordnungsknoten und das Erweitern seiner Funktionen, ohne eine benutzerdefinierte Klasse abzuleiten.
Stellen Sie eine IList Sammlung von Rollen bereit, um eine Reihe von Rollen bereitzustellen, die den Knoten anzeigen können, wenn die SecurityTrimmingEnabled Eigenschaft zurückgegeben wird true. Weitere Informationen finden Sie unter SecurityTrimmingEnabled.
Der XmlSiteMapProvider Anbieter verwendet die SiteMapNode.Url Eigenschaft als Nachschlageschlüssel. Daher müssen alle SiteMapNode , die von der XmlSiteMapProvider Anwendung verwendet werden, eine eindeutige URL innerhalb des Bereichs des Anbieters haben.
Wenn keine title oder description nicht angegeben wird, geben Aufrufe der Title Felder oder Description Eigenschaften ein String.Empty Feld zurück.
Um Ressourcen für die Lokalisierung programmgesteuert anzugeben, legen Sie entweder den Wert auf implicitResourceKey einen eindeutigen Namen fest, der verwendet wird, um lokalisierte Ressourcen für den Knoten zu identifizieren oder auf eine NameValueCollection Sammlung von name/value Paaren festzulegenexplicitResourceKeys, bei denen name es sich um die Knoteneigenschaft oder das benutzerdefinierte Attribut handelt, um Lokalisierungswerte für die Knoteneigenschaft oder das benutzerdefinierte Attribut zu lokalisieren und value zu enthalten. Die lokalisierten Werte können dann in den entsprechenden RESX-Dateien festgelegt werden. Weitere Informationen zum Lokalisieren der Title, Descriptionund aller benutzerdefinierten Eigenschaften eines SiteMapNode Objekts finden Sie unter How to: Localize Site-Map Data. Die Syntaxanforderungen der explicitResourceKeys Auflistung finden Sie unter NameValueCollection.