SiteMapNode Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un nodo nella struttura della mappa del sito gerarchica come quella descritta dalla classe SiteMap e dalle classi che implementano la classe SiteMapProvider astratta.
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
- Ereditarietà
-
SiteMapNode
- Implementazioni
Esempio
In questa sezione sono riportati due esempi di codice. Il primo esempio di codice illustra come creare una nuova raccolta di nodi della mappa del sito e aggiungerli. Il secondo esempio di codice illustra come caricare i dati della mappa del sito da un file di testo.
Nell'esempio di codice seguente viene illustrato come usare il SiteMapNodeCollection costruttore per creare una nuova SiteMapNodeCollection raccolta e quindi aggiungere elementi al Add metodo.
// 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
Nell'esempio di codice seguente viene illustrato come analizza un file di testo contenente i dati della SimpleTextSiteMapProvider
mappa del sito in stringhe delimitate da virgole. Un nuovo SiteMapNode oggetto viene aggiunto alle raccolte di rilevamento interne della classe per ogni riga letto dal file.
Questo esempio di codice fa parte di un esempio più grande fornito per la SiteMapProvider classe.
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
Commenti
Un SiteMapNode oggetto rappresenta una pagina del sito Web in una struttura della mappa del sito. SiteMapNode gli oggetti vengono caricati dalla classe statica SiteMap in fase di esecuzione usando uno o più provider di mappe del sito per caricare i dati della mappa del sito dall'archiviazione persistente nella memoria. SiteMapNode gli oggetti vengono incapsulati dalla classe da usare dai SiteMapNodeItem controlli server Web, ad esempio il SiteMapPath controllo.
La SiteMapNode classe include diverse proprietà usate per descrivere una singola pagina in un sito Web, incluse le proprietà che descrivono una pagina, ad esempio le Urlproprietà , Titlee Description . Mentre la Url proprietà viene usata dalla XmlSiteMapProvider classe, ovvero il provider predefinito della mappa del sito per ASP.NET, come chiave di ricerca nelle raccolte interne usate dal provider per tenere traccia dei nodi, la SiteMapNode classe supporta una proprietà di base Key che può essere usata dai provider di mappe del sito per tenere traccia dei nodi. Inoltre, la proprietà viene usata dai controlli di spostamento per eseguire il Url rendering dei collegamenti ipertestuali alle pagine all'interno di una struttura di spostamento. La Title proprietà è un nome descrittivo per SiteMapNode, è spesso uguale al titolo HTML di un Web Form e viene usato dai controlli di spostamento per eseguire il rendering di etichette semplici. Infine, una NameValueCollection raccolta di attributi aggiuntivi è disponibile per i provider di mapping del sito che usano SiteMapNode oggetti, ma richiedono proprietà aggiuntive Attributes che non sono disponibili nella classe baseSiteMapNode.
Costruttori
SiteMapNode(SiteMapProvider, String) |
Inizializza una nuova istanza della classe SiteMapNode usando l'elemento |
SiteMapNode(SiteMapProvider, String, String) |
Inizializza una nuova istanza della classe SiteMapNode usando l'URL specificato, un elemento |
SiteMapNode(SiteMapProvider, String, String, String) |
Inizializza una nuova istanza della classe SiteMapNode usando l'URL specificato, un elemento |
SiteMapNode(SiteMapProvider, String, String, String, String) |
Inizializza una nuova istanza della classe SiteMapNode usando l'URL specificato, un elemento |
SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inizializza una nuova istanza della classe SiteMapNode usando il provider della mappa del sito specificato che gestisce il nodo, l'URL, il titolo, la descrizione, i ruoli, gli attributi aggiuntivi e le chiavi di risorsa esplicite e implicite per la localizzazione. |
Proprietà
Attributes |
Ottiene o imposta un insieme di attributi aggiuntivi rispetto alle proprietà fortemente tipizzate definite nella classe SiteMapNode. |
ChildNodes |
Ottiene o imposta tutti i nodi figlio dell'oggetto SiteMapNode corrente del provider SiteMapProvider associato. |
Description |
Ottiene o imposta una descrizione per l'oggetto SiteMapNode. |
HasChildNodes |
Ottiene un valore che indica se l'elemento SiteMapNode corrente dispone di nodi figlio. |
Item[String] |
Ottiene o imposta un attributo personalizzato della raccolta Attributes o una stringa di risorsa basata sulla chiave specificata. |
Key |
Ottiene una stringa che rappresenta una chiave di ricerca di un nodo della mappa del sito. |
NextSibling |
Ottiene il nodo SiteMapNode successivo sullo stesso livello gerarchico del nodo corrente in relazione alla proprietà ParentNode, se disponibile. |
ParentNode |
Ottiene o imposta l'oggetto SiteMapNode che è l'elemento padre del nodo corrente. |
PreviousSibling |
Ottiene l'oggetto SiteMapNode precedente sullo stesso livello del nodo corrente in relazione all'oggetto ParentNode, se disponibile. |
Provider |
Ottiene il provider SiteMapProvider che tiene traccia dell'oggetto SiteMapNode. |
ReadOnly |
Ottiene o imposta un valore che indica se è consentito modificare il nodo della mappa del sito. |
ResourceKey |
Ottiene o imposta la chiave di risorsa usata per localizzare l'elemento SiteMapNode. |
Roles |
Ottiene o imposta una raccolta di ruoli associati all'oggetto SiteMapNode usato durante la limitazone per motivi di sicurezza. |
RootNode |
Ottiene il nodo radice del provider radice di una gerarchia di provider della mappa del sito. Se non esiste alcuna gerarchia di provider, la proprietà RootNode ottiene il nodo radice del provider corrente. |
Title |
Ottiene o imposta il titolo dell'oggetto SiteMapNode. |
Url |
Ottiene o imposta l'URL della pagina rappresentata dall'oggetto SiteMapNode. |
Metodi
Clone() |
Crea un nuovo nodo che è una copia del nodo corrente. |
Clone(Boolean) |
Crea una nuova copia del nodo corrente, con la possibilità di duplicare tutti i nodi padre e i nodi predecessore del nodo corrente. |
Equals(Object) |
Ottiene un valore che indica se l'elemento SiteMapNode corrente è identico all'oggetto specificato. |
GetAllNodes() |
Recupera un insieme di sola lettura di tutti gli oggetti SiteMapNode discendenti del nodo chiamante, indipendentemente dal grado di separazione fra i nodi. |
GetDataSourceView(SiteMapDataSource, String) |
Recupera l'oggetto SiteMapDataSourceView associato al nodo corrente. |
GetExplicitResourceString(String, String, Boolean) |
Recupera una stringa localizzata in base a un attributo SiteMapNode da localizzare, una stringa predefinita da restituire se non è disponibile alcuna risorsa e un valore booleano che indica se generare un'eccezione nel caso in cui non venga rilevata alcuna risorsa. |
GetHashCode() |
Restituisce il codice hash dell'oggetto SiteMapNode. |
GetHierarchicalDataSourceView() |
Recupera l'oggetto SiteMapHierarchicalDataSourceView associato al nodo corrente. |
GetImplicitResourceString(String) |
Ottiene una stringa localizzata in base al nome dell'attributo e alla proprietà ResourceKey specificata dall'elemento SiteMapProvider che tiene traccia dell'elemento SiteMapNode. |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsAccessibleToUser(HttpContext) |
Ottiene un valore che indica se il nodo della mappa del sito specificato può essere visualizzato dall'utente nel contesto specifico. |
IsDescendantOf(SiteMapNode) |
Ottiene un valore che indica se il nodo della mappa del sito corrente è un nodo figlio o un discendente diretto del nodo specificato. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Converte il valore dell'istanza corrente della classe SiteMapNode nella rappresentazione stringa equivalente. |
Implementazioni dell'interfaccia esplicita
ICloneable.Clone() |
Crea un nuovo nodo che è una copia del nodo corrente. Per una descrizione di questo membro, vedere Clone(). |
IHierarchyData.GetChildren() |
Recupera gli elementi dati figlio gerarchici dell'elemento corrente. Per una descrizione di questo membro, vedere GetChildren(). |
IHierarchyData.GetParent() |
Recupera l'oggetto padre gerarchico dell'elemento corrente. Per una descrizione di questo membro, vedere GetParent(). |
IHierarchyData.HasChildren |
Ottiene un valore che indica se l'oggetto SiteMapNode corrente ha nodi figlio. Per una descrizione di questo membro, vedere HasChildren. |
IHierarchyData.Item |
Ottiene l'elemento di dati gerarchico. Per una descrizione di questo membro, vedere Item. |
IHierarchyData.Path |
Ottiene il percorso dell'elemento di dati gerarchico. Per una descrizione di questo membro, vedere Path. |
IHierarchyData.Type |
Ottiene una stringa che rappresenta il nome del tipo dell'elemento di dati gerarchico. Per una descrizione di questo membro, vedere Type. |
INavigateUIData.Description |
Ottiene la proprietà Description del nodo della mappa del sito. Per una descrizione di questo membro, vedere Description. |
INavigateUIData.Name |
Ottiene la proprietà Title del nodo della mappa del sito. Per una descrizione di questo membro, vedere Name. |
INavigateUIData.NavigateUrl |
Ottiene la proprietà Url del nodo della mappa del sito. Per una descrizione di questo membro, vedere NavigateUrl. |
INavigateUIData.Value |
Ottiene la proprietà Title del nodo della mappa del sito. Per una descrizione di questo membro, vedere Value. |