SiteMapNode Třída
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í.
Představuje uzel v hierarchické mapové struktuře webu, jako je ta, která je popsána třídou a třídami SiteMap , které implementují abstraktní SiteMapProvider třídu.
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
- Dědičnost
-
SiteMapNode
- Implementuje
Příklady
Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak vytvořit novou kolekci uzlu mapy webu a přidat do ní prvky. Druhý příklad kódu ukazuje, jak načíst data mapy webu z textového souboru.
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
Následující příklad kódu ukazuje, jak SimpleTextSiteMapProvider
analyzuje textový soubor, který obsahuje data mapy webu v řetězcích oddělených čárkami. Nový SiteMapNode objekt je přidán do interních sledovacích kolekcí třídy pro každý řádek, který je načten ze souboru.
Tento příklad kódu je součástí většího příkladu SiteMapProvider pro 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
Objekt SiteMapNode představuje stránku webu ve struktuře mapy webu. SiteMapNode Objekty jsou načteny statickou SiteMap třídou za běhu pomocí jednoho nebo více zprostředkovatelů mapy webu k načtení dat mapy webu z trvalého úložiště do paměti. SiteMapNode objekty jsou zabaleny SiteMapNodeItem třídou pro použití ovládacími prvky webového SiteMapPath serveru, jako je například ovládací prvek .
Třída SiteMapNode obsahuje několik vlastností, které se používají k popisu jedné stránky na webu, včetně vlastností, které popisují stránku, například Url, Titlea Description vlastnosti. Url Zatímco vlastnost používá třída, která je výchozím zprostředkovatelem XmlSiteMapProvider mapy webu pro ASP.NET, jako vyhledávací klíč v interních kolekcích, které zprostředkovatel používá ke sledování uzlů, SiteMapNode třída podporuje základní Key vlastnost, kterou můžou poskytovatelé map webů použít ke sledování uzlů. Url Vlastnost je navíc používána navigačními ovládacími prvky k vykreslení hypertextových odkazů na stránky v rámci navigační struktury. Vlastnost Title je popisný název pro SiteMapNode, je často stejný jako název HTML webového formuláře a používá se navigačními ovládacími prvky k vykreslení jednoduchých popisků. NameValueCollection Nakonec je kolekce dalších Attributes atributů k dispozici pro zprostředkovatele mapy webu, kteří používají SiteMapNode objekty, ale vyžadují další vlastnosti, které nejsou k dispozici v základní SiteMapNode třídě.
Konstruktory
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 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. |
Vlastnosti
Attributes |
Získá nebo nastaví kolekci dalších atributů nad rámec vlastností silného typu, které jsou definovány SiteMapNode pro třídu. |
ChildNodes |
Získá nebo nastaví všechny podřízené uzly aktuálního SiteMapNode objektu z přidruženého SiteMapProvider zprostředkovatele. |
Description |
Získá nebo nastaví popis pro SiteMapNode. |
HasChildNodes |
Získá hodnotu označující, zda aktuální SiteMapNode má nějaké podřízené uzly. |
Item[String] |
Získá nebo nastaví vlastní atribut z Attributes kolekce nebo řetězec prostředku na základě zadaného klíče. |
Key |
Získá řetězec představující klíč vyhledávání pro uzel mapy webu. |
NextSibling |
Získá další SiteMapNode uzel na stejné hierarchické úrovni jako aktuální uzel vzhledem k ParentNode vlastnosti (pokud existuje). |
ParentNode |
Získá nebo nastaví SiteMapNode objekt, který je nadřazený aktuálnímu uzlu. |
PreviousSibling |
Získá předchozí SiteMapNode objekt na stejné úrovni jako aktuální objekt vzhledem k objektu ParentNode (pokud existuje). |
Provider |
Získá zprostředkovatele SiteMapProvider , podle SiteMapNode kterého je objekt sledován. |
ReadOnly |
Získá nebo nastaví hodnotu označující, zda lze upravit uzel mapy webu. |
ResourceKey |
Získá nebo nastaví klíč prostředku, který se používá k lokalizaci objektu SiteMapNode. |
Roles |
Získá nebo nastaví kolekci rolí, které jsou přidruženy k objektu SiteMapNode , použité během oříznutí zabezpečení. |
RootNode |
Získá kořenový uzel kořenového zprostředkovatele v hierarchii zprostředkovatele mapy webu. Pokud neexistuje žádná hierarchie zprostředkovatelů, RootNode vlastnost získá kořenový uzel aktuálního zprostředkovatele. |
Title |
Získá nebo nastaví název objektu SiteMapNode . |
Url |
Získá nebo nastaví adresu URL stránky, kterou SiteMapNode objekt představuje. |
Metody
Clone() |
Vytvoří nový uzel, který je kopií aktuálního uzlu. |
Clone(Boolean) |
Vytvoří novou kopii, která je kopií aktuálního uzlu, a volitelně naklonuje všechny nadřazené a nadřazené uzly aktuálního uzlu. |
Equals(Object) |
Získá hodnotu označující, zda je aktuální SiteMapNode shodný se zadaným objektem. |
GetAllNodes() |
Načte kolekci jen pro čtení všech SiteMapNode objektů, které jsou potomky volajícího uzlu, bez ohledu na stupeň oddělení. |
GetDataSourceView(SiteMapDataSource, String) |
Načte SiteMapDataSourceView objekt, který je přidružen k aktuálnímu uzlu. |
GetExplicitResourceString(String, String, Boolean) |
Načte lokalizovaný řetězec na základě atributu SiteMapNode , který se má lokalizovat, výchozí řetězec, který se vrátí, pokud není nalezen žádný prostředek, a logickou hodnotu označující, zda se má vyvolat výjimka, pokud není nalezen žádný prostředek. |
GetHashCode() |
Vrátí kód hash objektu SiteMapNode . |
GetHierarchicalDataSourceView() |
Načte SiteMapHierarchicalDataSourceView objekt, který je přidružen k aktuálnímu uzlu. |
GetImplicitResourceString(String) |
Získá lokalizovaný řetězec na základě názvu atributu a ResourceKey vlastnost, která je určena, SiteMapProvider podle kterého SiteMapNode je sledována. |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
IsAccessibleToUser(HttpContext) |
Získá hodnotu určující, zda zadaný uzel mapy webu lze zobrazit uživatelem v zadaném kontextu. |
IsDescendantOf(SiteMapNode) |
Získá hodnotu určující, zda aktuální uzel mapy webu je podřízený nebo přímý potomek zadaného uzlu. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Převede hodnotu této instance SiteMapNode třídy na její ekvivalentní řetězcové vyjádření. |
Explicitní implementace rozhraní
ICloneable.Clone() |
Vytvoří nový uzel, který je kopií aktuálního uzlu. Popis tohoto člena najdete v tématu Clone(). |
IHierarchyData.GetChildren() |
Načte hierarchické podřízené datové položky aktuální položky. Popis tohoto člena najdete v tématu GetChildren(). |
IHierarchyData.GetParent() |
Načte hierarchický nadřazený objekt aktuální položky. Popis tohoto člena najdete v tématu GetParent(). |
IHierarchyData.HasChildren |
Získá hodnotu, která označuje, zda aktuální SiteMapNode objekt má nějaké podřízené uzly. Popis tohoto člena najdete v tématu HasChildren. |
IHierarchyData.Item |
Získá položku hierarchických dat. Popis tohoto člena najdete v tématu Item. |
IHierarchyData.Path |
Získá cestu položky hierarchických dat. Popis tohoto člena najdete v tématu Path. |
IHierarchyData.Type |
Získá řetězec, který představuje název typu položky hierarchických dat. Popis tohoto člena najdete v tématu Type. |
INavigateUIData.Description |
Description Získá vlastnost uzlu mapy webu. Popis tohoto člena najdete v tématu Description. |
INavigateUIData.Name |
Title Získá vlastnost uzlu mapy webu. Popis tohoto člena najdete v tématu Name. |
INavigateUIData.NavigateUrl |
Url Získá vlastnost uzlu mapy webu. Popis tohoto člena najdete v tématu NavigateUrl. |
INavigateUIData.Value |
Title Získá vlastnost uzlu mapy webu. Popis tohoto člena najdete v tématu Value. |
Platí pro
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro