SiteMap 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í.
Třída SiteMap je reprezentace navigační struktury webu v paměti, kterou poskytuje jeden nebo více zprostředkovatelů mapy webu. Tato třída se nemůže dědit.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Dědičnost
-
SiteMap
Příklady
Tato část obsahuje dva příklady kódu. První příklad kódu ukazuje, jak deklarovat zprostředkovatele mapy webu v souboru Web.config. Druhý příklad kódu ukazuje, jak použít SiteMap objekt.
Následující příklad kódu je oddíl konfigurace Web.config, který ukazuje, jak XmlSiteMapProvider je objekt deklarován jako výchozí SiteMapProvider objekt.
<siteMap defaultProvider="MyXmlSiteMapProvider" enabled="true">
<providers>
<add name="MyXmlSiteMapProvider"
description="The site map provider that reads in the .sitemap XML files."
type="System.Web.XmlSiteMapProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
siteMapFile="my.sitemap" />
</providers>
</siteMap>
Následující příklad kódu ukazuje, jak pomocí objektu SiteMap získat přístup k jeho statickým členům k zobrazení informací o vlastnostech RootNode a CurrentNode . Porovnejte ho s výstupem SiteMapPath , který ovládací prvek vykresluje.
<%@ Page language="c#"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
// Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title + "<br />");
Response.Write("<font COLOR='red'>" + SiteMap.CurrentNode.Url + "</font><br />");
// What nodes are children of the CurrentNode?
if (SiteMap.CurrentNode.HasChildNodes) {
IEnumerator childNodesEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator();
while (childNodesEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() + "<br />");
}
}
Response.Write("<hr />");
// Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title + "<br />");
Response.Write(SiteMap.RootNode.Url + "<br />");
// What nodes are children of the RootNode?
if (SiteMap.RootNode.HasChildNodes) {
IEnumerator rootNodesChildrenEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator();
while (rootNodesChildrenEnumerator.MoveNext()) {
// Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() + "<br />");
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
<%@ Page language="VB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Private Sub Page_Load(sender As Object, e As System.EventArgs)
' Examine the CurrentNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.CurrentNode.Title & "<br />")
Response.Write("<font COLOR='red'>" & SiteMap.CurrentNode.Url & "</font><br />")
' What nodes are children of the CurrentNode?
If (SiteMap.CurrentNode.HasChildNodes) Then
Dim childNodesEnumerator As IEnumerator = SiteMap.CurrentNode.ChildNodes.GetEnumerator()
While (childNodesEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(childNodesEnumerator.Current.ToString() & "<br />")
End While
End If
Response.Write("<hr />")
' Examine the RootNode, and navigate the SiteMap relative to it.
Response.Write(SiteMap.RootNode.Title & "<br />")
Response.Write(SiteMap.RootNode.Url & "<br />")
' What nodes are children of the RootNode?
If (SiteMap.RootNode.HasChildNodes) Then
Dim rootNodesChildrenEnumerator As IEnumerator = SiteMap.RootNode.ChildNodes.GetEnumerator()
While (rootNodesChildrenEnumerator.MoveNext())
' Prints the Title of each node.
Response.Write(rootNodesChildrenEnumerator.Current.ToString() & "<br />")
End While
End If
End Sub ' Page_Load
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="Form1" runat="server">
<asp:SiteMapPath
runat="server"
ID="SiteMapPath1"
ShowToolTips="false"/>
</form>
</body>
</html>
Poznámky
Mapy webu se používají ve spojení s ovládacími SiteMapDataSourceprvky , SiteMapPatha dalšími ovládacími prvky k vykreslení efektivního navigačního rozhraní pro uživatele k navigaci na webu. Objekt SiteMap je součást navigační infrastruktury ASP.NET webu, která poskytuje přístup k informacím o mapě webu jen pro čtení pro vývojáře stránek a ovládacích prvků pomocí navigace a SiteMapDataSource ovládacích prvků. Mezi další součásti infrastruktury navigace ASP.NET webu patří SiteMapProvider třídy a XmlSiteMapProvider , soubor Web.sitemap a různé ovládací prvky, které pracují s SiteMap třídou, jako SiteMapPath je například ovládací prvek, vykreslují obsah a nabídky.
Má SiteMap několik funkcí:
Poskytuje kořenový uzel hierarchie navigace na webu (může existovat pouze jeden kořenový uzel).
Identifikuje, který zprostředkovatel mapy webu je hlavní nebo výchozí zprostředkovatel.
Sleduje všechny objekty zprostředkovatele, které se používají k vytvoření objektu SiteMap.
V podstatě SiteMap je kontejner pro hierarchickou kolekci SiteMapNode objektů. SiteMap Nástroj však neudržuje vztahy mezi uzly, ale deleguje je na zprostředkovatele mapy webu. Funguje SiteMap jako rozhraní pro informace o navigaci na webu (ve formě SiteMapNode objektů), které jsou uloženy těmito poskytovateli map webu. Sleduje poskytovatele, od kterých může přistupovat k datům navigace na webu, a zveřejňuje svoji Providers kolekci. Zprostředkovatel může ukládat informace o mapě webu jakýmkoli způsobem – pokud rozšíří SiteMapProvider abstraktní třídu, SiteMap lze z ní úspěšně inicializovat třídu.
Výchozím zprostředkovatelem SiteMap třídy je XmlSiteMapProvider třída, která pracuje s konfiguračním souborem XML Web.sitemap. Můžete ale napsat vlastní SiteMapProvider objekt a použít ho k inicializaci mapy webu pro váš web. Příklad vlastního zprostředkovatele mapy webu najdete v tématu SiteMapProvider.
Je zadána výchozí konfigurace mapy webu, která spravuje konfiguraci navigace na webu. Tuto konfiguraci můžete přepsat v souboru Web.config, pokud se rozhodnete zapsat vlastního zprostředkovatele mapy webu.
Třída SiteMap nabízí pouze statické členy pro výkon a lze k ní kdykoli přistupovat na daném webu z ovládacího prvku webového formuláře nebo webového serveru.
Vlastnosti
CurrentNode |
Získá ovládací prvek SiteMapNode , který představuje aktuálně požadovanou stránku. |
Enabled |
Získá logickou hodnotu označující, zda je v souboru Web.config zadán zprostředkovatel mapy webu a zda je povoleno zprostředkovatele mapy webu. |
Provider |
Získá výchozí SiteMapProvider objekt pro aktuální mapu webu. |
Providers |
Získá jen pro čtení kolekce pojmenovaných SiteMapProvider objektů, které jsou k dispozici pro SiteMap třídu. |
RootNode |
SiteMapNode Získá objekt, který představuje stránku nejvyšší úrovně navigační struktury webu. |
Událost
SiteMapResolve |
Nastane při přístupu k CurrentNode vlastnosti. |