SiteMapNode Konstruktorer
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.
Initierar en ny instans av SiteMapNode klassen och associerar den med det angivna SiteMapProvider objektet.
Överlagringar
| Name | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna |
| SiteMapNode(SiteMapProvider, 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, String, String) |
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en |
| 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)
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.
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)
Parametrar
- provider
- SiteMapProvider
Med SiteMapProvider vilken noden är associerad.
- key
- String
En providerspecifik uppslagsnyckel.
Undantag
Kommentarer
Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode kontroller som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Gäller för
SiteMapNode(SiteMapProvider, String, String)
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar och webbplatsöversiktsprovidern som hanterar noden.
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)
Parametrar
- provider
- SiteMapProvider
Med SiteMapProvider vilken noden är associerad.
- key
- String
En providerspecifik uppslagsnyckel.
- url
- String
URL:en till sidan som noden representerar på platsen.
Undantag
Exempel
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
Kommentarer
Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Gäller för
SiteMapNode(SiteMapProvider, String, String, String)
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och webbplatsöversiktsprovidern som hanterar noden.
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)
Parametrar
- provider
- SiteMapProvider
Med SiteMapProvider vilken noden är associerad.
- key
- String
En providerspecifik uppslagsnyckel.
- url
- String
URL:en till sidan som noden representerar på platsen.
- title
- String
En etikett för noden, som ofta visas av navigeringskontroller.
Undantag
Exempel
Följande kodexempel visar hur du använder SiteMapNode konstruktorn för att skapa en ny instans av SiteMapNode klassen. Noden initieras med värden från en Microsoft Access databasrad.
Det här kodexemplet är en del av ett större exempel för BuildSiteMap metoden.
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()
Kommentarer
Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Om inget title anges returnerar anrop till Title egenskapen fältet String.Empty .
Gäller för
SiteMapNode(SiteMapProvider, String, String, String, String)
Initierar en ny instans av klassen med hjälp av SiteMapNode den angivna URL:en, en key för att identifiera den sida som noden representerar, en rubrik och en beskrivning samt webbplatsöversiktsprovidern som hanterar noden.
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)
Parametrar
- provider
- SiteMapProvider
Med SiteMapProvider vilken noden är associerad.
- key
- String
En providerspecifik uppslagsnyckel.
- url
- String
URL:en till sidan som noden representerar på platsen.
- title
- String
En etikett för noden, som ofta visas av navigeringskontroller.
- description
- String
En beskrivning av sidan som noden representerar.
Undantag
Exempel
Följande kodexempel visar hur du använder SiteMapNode konstruktorn för att skapa ett SiteMapNode objekt genom att parsa data från en enkel textfil för att skapa en webbplatskarta i minnet.
Det här kodexemplet är en del av ett större exempel för den abstrakta 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
Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Om inget title eller description anges returnerar anrop till Title egenskaperna eller Description ett String.Empty fält.
Se även
Gäller för
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.
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)
Parametrar
- provider
- SiteMapProvider
Med SiteMapProvider vilken noden är associerad.
- key
- String
En providerspecifik uppslagsnyckel.
- url
- String
URL:en till sidan som noden representerar på platsen.
- title
- String
En etikett för noden, som ofta visas av navigeringskontroller.
- description
- String
En beskrivning av sidan som noden representerar.
- roles
- IList
En IList av roller som kan visa sidan som representeras av SiteMapNode.
- attributes
- NameValueCollection
En NameValueCollection av ytterligare attribut som används för att initiera SiteMapNode.
- explicitResourceKeys
- NameValueCollection
En NameValueCollection av explicita resursnycklar som används för lokalisering.
- implicitResourceKey
- String
En implicit resursnyckel som används för lokalisering.
Undantag
Kommentarer
Klassen XmlSiteMapProvider, som är standardimplementeringen SiteMapProvider provider för ASP.NET, använder egenskapen SiteMapNode.Url som en uppslagsnyckel, om en anges för noden (om en URL inte anges genereras en spårningsidentifierare för noden). Därför måste alla SiteMapNode objekt som tillhandahåller en URL och som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Samlingen NameValueCollection med attribut som SiteMapNode skapas med är tillgänglig via Attributes egenskapen och gör det enkelt att tillämpa ytterligare attribut på en platsöversiktsnod och utöka dess funktioner utan att härleda en anpassad klass för att göra det.
Ange en IList samling roller för att tillhandahålla en uppsättning roller som kan visa noden när SecurityTrimmingEnabled egenskapen returnerar true. Mer information finns i SecurityTrimmingEnabled.
Providern XmlSiteMapProvider använder egenskapen SiteMapNode.Url som en uppslagsnyckel. Därför måste alla SiteMapNode som används av XmlSiteMapProvider ha en unik URL inom providerns omfång.
Om inget title eller description anges returnerar anrop till Title egenskaperna eller Description ett String.Empty fält.
För att programmatiskt ange resurser för lokalisering anger du antingen värdet implicitResourceKey för till ett unikt namn som ska användas för att identifiera lokaliserade resurser för noden eller ange explicitResourceKeys till en NameValueCollection samling name/value par där name är nodegenskapen eller det anpassade attributet för att lokalisera och value innehåller lokaliseringsvärden för nodegenskapen eller det anpassade attributet. De lokaliserade värdena kan sedan anges i lämpliga .resx-filer. Mer information om hur du lokaliserar Title, Descriptionoch eventuella anpassade egenskaper för ett SiteMapNode objekt finns i Så här lokaliserar du Site-Map data. Syntaxkraven för samlingen explicitResourceKeysfinns i NameValueCollection .