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 třídy a přidruží SiteMapNode ji k zadanému SiteMapProvider objektu.
Přetížení
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 identifikaci stránky, |
SiteMapNode(SiteMapProvider, String, String, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a k identifikaci stránky, |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializuje novou instanci třídy pomocí zadaného SiteMapNode poskytovatele 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 zprostředkovatele mapy lokality, 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode ovládací prvek, který poskytuje adresu URL a používá XmlSiteMapProvider ho, 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 identifikaci stránky, key
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 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í konstruktoru SiteMapNodeCollection vytvořit novou SiteMapNodeCollection kolekci a poté do ní přidat prvky 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , 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, key
a k identifikaci stránky, kterou uzel představuje, název a zprostředkovatele 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 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 pomocí navigačních ovládacích prvků.
Výjimky
Příklady
Následující příklad kódu ukazuje, jak použít SiteMapNode konstruktor k vytvoření nové instance 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
title
Pokud není zadaný, volání Title vlastnosti vrátí String.Empty pole .
Platí pro
SiteMapNode(SiteMapProvider, String, String, String, String)
Inicializuje novou instanci SiteMapNode třídy pomocí zadané adresy URL, a k identifikaci stránky, key
kterou uzel představuje, název a popis a zprostředkovatele 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 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 pomocí navigačních ovládacích prvků.
- description
- String
Popis stránky, kterou uzel představuje.
Výjimky
Příklady
Následující příklad kódu ukazuje, jak použít SiteMapNode konstruktor k vytvoření objektu SiteMapNode 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 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , XmlSiteMapProvider musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Pokud není zadaný žádný title
nebo description
, vrátí volání Title vlastnosti String.Empty nebo Description pole.
Viz také
Platí pro
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String)
Inicializuje novou instanci třídy pomocí zadaného SiteMapNode poskytovatele 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 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 pomocí navigačních ovládacích prvků.
- description
- String
Popis stránky, kterou uzel představuje.
- roles
- IList
Role IList , které mají povoleno zobrazit stránku reprezentovanou objektem SiteMapNode.
- attributes
- NameValueCollection
A NameValueCollection dalších atributů použitých k inicializaci .SiteMapNode
- explicitResourceKeys
- NameValueCollection
A NameValueCollection explicitních klíčů prostředků používaných k 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 pro uzel zadaný (pokud není adresa URL zadaná, vygeneruje se pro uzel sledovací identifikátor). Proto každý SiteMapNode objekt, který poskytuje adresu URL a je používán objektem , 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 umožňuje snadno použít další atributy na uzlu mapy webu a rozšířit jeho schopnosti bez odvození vlastní třídy k tomu.
IList Zadejte kolekci rolí poskytující sadu rolí, které můžou zobrazit uzel, když SecurityTrimmingEnabled vlastnost vrátí true
hodnotu . Další informace naleznete v tématu SecurityTrimmingEnabled.
Zprostředkovatel XmlSiteMapProvider používá SiteMapNode.Url vlastnost jako klíč vyhledávání. To znamená, že každá SiteMapNode adresa, kterou XmlSiteMapProvider používá, musí mít jedinečnou adresu URL v rámci oboru poskytovatele.
Pokud není zadaný žádný title
nebo description
, vrátí volání Title vlastnosti String.Empty nebo Description pole.
Pokud chcete programově určit prostředky pro lokalizaci, buď nastavte hodnotu implicitResourceKey
na jedinečný název, který se použije k identifikaci lokalizovaných prostředků pro uzel, nebo na NameValueCollection kolekci explicitResourceKeys
name/value
dvojic, kde name
je vlastnost uzlu nebo vlastní atribut k lokalizaci a value
obsahuje hodnoty lokalizace pro vlastnost uzlu nebo vlastní atribut. Lokalizované hodnoty lze pak nastavit v příslušných souborech .resx. Další informace o tom, jak lokalizovat Title, Descriptiona jakékoli vlastní vlastnosti objektu SiteMapNode , najdete v tématu Postupy: Lokalizace Site-Map dat. Požadavky na syntaxi kolekce najdete v explicitResourceKeys
tématu NameValueCollection.