SiteMapNode Konstruktory
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Inicializuje novou instanci SiteMapNode třídy a přidruží ji k zadanému SiteMapProvider objektu.
Přetížení
| Name | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané |
| SiteMapNode(SiteMapProvider, String, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, k |
| SiteMapNode(SiteMapProvider, String, String, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a |
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadaného zprostředkovatele mapy webu, který spravuje uzel, adresu URL, název, popis, role, další atributy a explicitní a implicitní klíče prostředků pro lokalizaci. |
SiteMapNode(SiteMapProvider, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadané key k identifikaci stránky, kterou uzel představuje, a poskytovatele mapy webu, který spravuje uzel.
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)
Parametry
- provider
- SiteMapProvider
Uzel SiteMapProvider , ke kterému je uzel přidružený.
- key
- String
Vyhledávací klíč specifický pro zprostředkovatele.
Výjimky
Poznámky
Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode ovládací prvek, který poskytuje adresu URL a který je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Platí pro
SiteMapNode(SiteMapProvider, String, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, k key identifikaci stránky, kterou uzel představuje, a zprostředkovatele mapy webu, který spravuje uzel.
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)
Parametry
- provider
- SiteMapProvider
Uzel SiteMapProvider , ke kterému je uzel přidružený.
- key
- String
Vyhledávací klíč specifický pro zprostředkovatele.
- url
- String
Adresa URL stránky, kterou uzel představuje v rámci webu.
Výjimky
Příklady
Následující příklad kódu ukazuje, jak pomocí SiteMapNodeCollection konstruktoru vytvořit novou SiteMapNodeCollection kolekci a pak do ní přidat elementy pomocí Add metody.
// 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
Poznámky
Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Platí pro
SiteMapNode(SiteMapProvider, String, String, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a zprostředkovatel mapy webu, který spravuje uzel.
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)
Parametry
- provider
- SiteMapProvider
Uzel SiteMapProvider , ke kterému je uzel přidružený.
- key
- String
Vyhledávací klíč specifický pro zprostředkovatele.
- url
- String
Adresa URL stránky, kterou uzel představuje v rámci webu.
- title
- String
Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky
Výjimky
Příklady
Následující příklad kódu ukazuje, jak pomocí SiteMapNode konstruktoru vytvořit novou instanci SiteMapNode třídy. Uzel se inicializuje s hodnotami z řádku databáze Aplikace Microsoft Access.
Tento příklad kódu je součástí většího příkladu poskytnutého pro metodu BuildSiteMap .
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()
Poznámky
Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
title Pokud není k dispozici, volání vlastnosti Title vrátí String.Empty pole.
Platí pro
SiteMapNode(SiteMapProvider, String, String, String, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a key identifikuje stránku, kterou uzel představuje, název a popis a zprostředkovatel mapy webu, který spravuje uzel.
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)
Parametry
- provider
- SiteMapProvider
Uzel SiteMapProvider , ke kterému je uzel přidružený.
- key
- String
Vyhledávací klíč specifický pro zprostředkovatele.
- url
- String
Adresa URL stránky, kterou uzel představuje v rámci webu.
- title
- String
Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky
- description
- String
Popis stránky, kterou uzel představuje.
Výjimky
Příklady
Následující příklad kódu ukazuje, jak pomocí SiteMapNode konstruktoru SiteMapNode vytvořit objekt parsováním dat z jednoduchého textového souboru k sestavení mapy webu v paměti.
Tento příklad kódu je součástí většího příkladu poskytnutého pro abstraktní SiteMapProvider třídu.
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
Poznámky
Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Pokud není title k dispozici nebo description není k dispozici, volání do Title pole nebo Description vlastnosti vrátí String.Empty pole.
Viz také
Platí pro
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadaného zprostředkovatele mapy webu, který spravuje uzel, adresu URL, název, popis, role, další atributy a explicitní a implicitní klíče prostředků pro lokalizaci.
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)
Parametry
- provider
- SiteMapProvider
Uzel SiteMapProvider , ke kterému je uzel přidružený.
- key
- String
Vyhledávací klíč specifický pro zprostředkovatele.
- url
- String
Adresa URL stránky, kterou uzel představuje v rámci webu.
- title
- String
Popisek uzlu, který se často zobrazuje navigačními ovládacími prvky
- description
- String
Popis stránky, kterou uzel představuje.
- roles
- IList
Role IList , které mají povoleno zobrazit stránku reprezentovanou stránkou SiteMapNode.
- attributes
- NameValueCollection
A NameValueCollection dalších atributů použitých k inicializaci SiteMapNode.
- explicitResourceKeys
- NameValueCollection
Explicitní NameValueCollection klíče prostředků používané pro lokalizaci
- implicitResourceKey
- String
Implicitní klíč prostředku používaný k lokalizaci.
Výjimky
Poznámky
Třída XmlSiteMapProvider , která je výchozí SiteMapProvider implementací zprostředkovatele pro ASP.NET, používá SiteMapNode.Url vlastnost jako vyhledávací klíč, pokud je k uzlu k dispozici (pokud není k dispozici adresa URL, pro uzel se vygeneruje identifikátor sledování). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Kolekce NameValueCollection atributů, pomocí které SiteMapNode je vytvořena, je k dispozici prostřednictvím Attributes vlastnosti a usnadňuje použití dalších atributů na uzel mapy webu a rozšíření jeho schopností bez odvození vlastní třídy k tomu.
IList Zadejte kolekci rolí pro poskytnutí sady rolí, které mohou zobrazit uzel při SecurityTrimmingEnabled vrácení truevlastnosti . Další informace najdete na webu SecurityTrimmingEnabled.
Zprostředkovatel XmlSiteMapProvider používá SiteMapNode.Url vlastnost jako vyhledávací klíč. Proto každý SiteMapNode , který je používán poskytovatelem XmlSiteMapProvider , musí mít jedinečnou adresu URL v oboru poskytovatele.
Pokud není title k dispozici nebo description není k dispozici, volání do Title pole nebo Description vlastnosti vrátí String.Empty pole.
Pokud chcete určit prostředky pro lokalizaci prostřednictvím kódu programu, nastavte hodnotu jedinečného implicitResourceKey názvu, který se použije k identifikaci lokalizovaných prostředků pro uzel, nebo na explicitResourceKeysNameValueCollection kolekci name/value dvojic, kde name je vlastnost uzlu nebo vlastní atribut pro lokalizaci a value obsahuje hodnoty lokalizace pro vlastnost uzlu nebo vlastní atribut. Lokalizované hodnoty je pak možné nastavit v příslušných souborech .resx. Další informace o tom, jak lokalizovat Title, Descriptiona všechny vlastní vlastnosti objektu SiteMapNode naleznete v tématu Postupy: Lokalizace Site-Map Data. Požadavky na syntaxi kolekce najdete v explicitResourceKeys tématu NameValueCollection.