SiteMapNode Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Egy csomópontot jelöl a hierarchikus helytérkép-struktúrában, például az absztrakt SiteMap osztályt megvalósító osztály és osztályok által SiteMapProvider leírt módon.
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
- Öröklődés
-
SiteMapNode
- Megvalósítás
Példák
Ez a szakasz két példakódot tartalmaz. Az első példakód bemutatja, hogyan hozhat létre új helytérkép-csomópontcsoportot, és hogyan adhat hozzá elemeket. A második példakód bemutatja, hogyan tölthet be helytérképadatokat egy szövegfájlból.
Az alábbi példakód bemutatja, hogyan hozhat létre új SiteMapNodeCollection gyűjteményt a SiteMapNodeCollection konstruktor használatával, majd hogyan adhat hozzá elemeket a Add metódussal.
// 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
Az alábbi példakód bemutatja, hogyan elemzi a SimpleTextSiteMapProvider helytérkép adatait tartalmazó szövegfájlt vesszővel tagolt sztringekben. A rendszer új SiteMapNode objektumot ad hozzá az osztály belső nyomkövetési gyűjteményéhez a fájlból beolvasott minden egyes sorhoz.
Ez a példakód egy nagyobb, az SiteMapProvider osztályhoz tartozó példa része.
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
Megjegyzések
Az SiteMapNode objektumok webhelytérkép-struktúrában lévő webhelylapokat jelölnek. SiteMapNode az objektumokat a statikus SiteMap osztály futtatáskor tölti be egy vagy több helyleképező szolgáltató használatával a helytérkép-adatok állandó tárolóból a memóriába való betöltéséhez. SiteMapNode az objektumokat az osztály burkolta a SiteMapNodeItem webkiszolgáló-vezérlők, például a SiteMapPath vezérlő által való használatra.
Az SiteMapNode osztály számos tulajdonságot tartalmaz, amelyek egy webhely egyetlen lapjának leírására szolgálnak, beleértve a lapokat leíró tulajdonságokat, például a Url, Titleés Description tulajdonságokat. Míg a Url tulajdonságot a XmlSiteMapProvider osztály használja, amely a ASP.NET alapértelmezett helytérkép-szolgáltatója, a csomópontok nyomon követésére használt belső gyűjtemények keresési kulcsaként, a SiteMapNode osztály egy alapszintű Key tulajdonságot támogat, amelyet a helytérkép-szolgáltatók a csomópontok nyomon követésére használhatnak. Emellett a Url navigációs vezérlők a tulajdonságot használják a navigációs struktúrán belüli oldalakra mutató hivatkozások megjelenítésére. A Title tulajdonság a SiteMapNodewebűrlap HTML-címével gyakran megegyezik, és a navigációs vezérlők egyszerű címkék megjelenítésére használják. Végül további NameValueCollection attribútumok gyűjteménye Attributes érhető el az objektumokat használó SiteMapNode helyleképező szolgáltatók számára, de olyan további tulajdonságokat igényelnek, amelyek nem érhetők el az alaposztályban SiteMapNode .
Konstruktorok
| Name | Description |
|---|---|
| SiteMapNode(SiteMapProvider, String, String, String, String, IList, NameValueCollection, NameValueCollection, String) |
Inicializálja az SiteMapNode osztály új példányát a megadott helytérkép-szolgáltató használatával, amely kezeli a csomópontot, az URL-címet, a címet, a leírást, a szerepköröket, a további attribútumokat, valamint a honosítás explicit és implicit erőforráskulcsait. |
| SiteMapNode(SiteMapProvider, String, String, String, String) |
Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a |
| SiteMapNode(SiteMapProvider, String, String, String) |
Inicializálja az SiteMapNode osztály új példányát a megadott URL-címmel, a |
| SiteMapNode(SiteMapProvider, String, String) |
Inicializálja az SiteMapNode osztály új példányát a megadott URL-cím, |
| SiteMapNode(SiteMapProvider, String) |
Inicializálja az SiteMapNode osztály új példányát a megadottak |
Tulajdonságok
| Name | Description |
|---|---|
| Attributes |
Az osztályhoz definiált, erősen gépelt tulajdonságokon túl további attribútumok gyűjteményét is lekéri vagy beállítja SiteMapNode . |
| ChildNodes |
Lekéri vagy beállítja az aktuális SiteMapNode objektum összes gyermekcsomópontját a társított SiteMapProvider szolgáltatótól. |
| Description |
Lekéri vagy beállítja a leírást a SiteMapNode. |
| HasChildNodes |
Beolvas egy értéket, amely jelzi, hogy az aktuálisnak SiteMapNode vannak-e gyermekcsomópontjai. |
| Item[String] |
Beolvas vagy beállít egy egyéni attribútumot a Attributes gyűjteményből vagy egy erőforrás-sztringből a megadott kulcs alapján. |
| Key |
Lekéri a helytérkép-csomópont keresési kulcsát jelképező sztringet. |
| NextSibling |
Lekéri a következő SiteMapNode csomópontot ugyanazon a hierarchikus szinten, mint az aktuális, a ParentNode tulajdonsághoz képest (ha van ilyen). |
| ParentNode |
Lekéri vagy beállítja az SiteMapNode aktuális csomópont szülőobjektumát. |
| PreviousSibling |
Az előző SiteMapNode objektum az aktuáliséval azonos szinten lesz lekérve az ParentNode objektumhoz képest (ha van ilyen). |
| Provider |
Lekéri azt a SiteMapProvider szolgáltatót, amely nyomon követi az SiteMapNode objektumot. |
| ReadOnly |
Lekéri vagy beállít egy értéket, amely jelzi, hogy a helyleképezési csomópont módosítható-e. |
| ResourceKey |
Lekéri vagy beállítja a honosításhoz használt erőforráskulcsot SiteMapNode. |
| Roles |
Lekéri vagy beállítja az SiteMapNode objektumhoz társított szerepkörök gyűjteményét a biztonsági vágás során. |
| RootNode |
Lekéri a gyökérszolgáltató gyökércsomópontját egy helytérkép-szolgáltatói hierarchiában. Ha nincs szolgáltatói hierarchia, a RootNode tulajdonság lekéri az aktuális szolgáltató gyökércsomópontját. |
| Title |
Lekéri vagy beállítja az SiteMapNode objektum címét. |
| Url |
Lekéri vagy beállítja annak a lapnak az URL-címét, amelyet az SiteMapNode objektum képvisel. |
Metódusok
| Name | Description |
|---|---|
| Clone() |
Létrehoz egy új csomópontot, amely az aktuális csomópont másolata. |
| Clone(Boolean) |
Létrehoz egy új másolatot, amely az aktuális csomópont másolata, opcionálisan klónozza az aktuális csomópont összes szülő- és őscsomópontjait. |
| Equals(Object) |
Beolvas egy értéket, amely jelzi, hogy az áram SiteMapNode megegyezik-e a megadott objektummal. |
| GetAllNodes() |
Lekéri az összes SiteMapNode objektum írásvédett gyűjteményét, amely a hívó csomópont leszármazottja, függetlenül az elkülönítés mértékétől. |
| GetDataSourceView(SiteMapDataSource, String) |
Lekéri az SiteMapDataSourceView aktuális csomóponthoz társított objektumot. |
| GetExplicitResourceString(String, String, Boolean) |
Lekéri a honosítandó attribútumon alapuló SiteMapNode honosított sztringet, egy alapértelmezett karakterláncot, amelyet akkor ad vissza, ha nem található erőforrás, és logikai érték, amely jelzi, hogy kivételt kell-e eredményeznie, ha nincs erőforrás. |
| GetHashCode() |
Az objektum kivonatkódját SiteMapNode adja vissza. |
| GetHierarchicalDataSourceView() |
Lekéri az SiteMapHierarchicalDataSourceView aktuális csomóponthoz társított objektumot. |
| GetImplicitResourceString(String) |
Lekéri a honosított sztringet az attribútum neve és ResourceKey tulajdonsága alapján, amelyet a SiteMapProviderSiteMapNode nyomon követés alapjául szolgáló tulajdonság határoz meg. |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| IsAccessibleToUser(HttpContext) |
Beolvas egy értéket, amely jelzi, hogy a megadott helyleképezési csomópontot a felhasználó megtekintheti-e a megadott környezetben. |
| IsDescendantOf(SiteMapNode) |
Beolvas egy értéket, amely jelzi, hogy az aktuális helyleképezési csomópont a megadott csomópont gyermek- vagy közvetlen leszármazottja-e. |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| ToString() |
Az osztály ezen példányának értékét a SiteMapNode megfelelő sztring-ábrázolásúvá alakítja. |
Explicit interfész-implementációk
| Name | Description |
|---|---|
| ICloneable.Clone() |
Létrehoz egy új csomópontot, amely az aktuális csomópont másolata. Ennek a tagnak a leírását lásd Clone(): . |
| IHierarchyData.GetChildren() |
Lekéri az aktuális elem hierarchikus gyermekadat-elemeit. Ennek a tagnak a leírását lásd GetChildren(): . |
| IHierarchyData.GetParent() |
Az aktuális elem hierarchikus szülőjének lekérése. Ennek a tagnak a leírását lásd GetParent(): . |
| IHierarchyData.HasChildren |
Olyan értéket kap, amely jelzi, hogy az aktuális SiteMapNode objektum rendelkezik-e gyermekcsomópontokkal. Ennek a tagnak a leírását lásd HasChildren: . |
| IHierarchyData.Item |
Lekéri a hierarchikus adatelemet. Ennek a tagnak a leírását lásd Item: . |
| IHierarchyData.Path |
Lekéri a hierarchikus adatelem elérési útját. Ennek a tagnak a leírását lásd Path: . |
| IHierarchyData.Type |
Lekéri a hierarchikus adatelem típusnevét képviselő sztringet. Ennek a tagnak a leírását lásd Type: . |
| INavigateUIData.Description |
Lekéri a Description helytérkép-csomópont tulajdonságát. Ennek a tagnak a leírását lásd Description: . |
| INavigateUIData.Name |
Lekéri a Title helytérkép-csomópont tulajdonságát. Ennek a tagnak a leírását lásd Name: . |
| INavigateUIData.NavigateUrl |
Lekéri a Url helytérkép-csomópont tulajdonságát. Ennek a tagnak a leírását lásd NavigateUrl: . |
| INavigateUIData.Value |
Lekéri a Title helytérkép-csomópont tulajdonságát. Ennek a tagnak a leírását lásd Value: . |