SiteMap Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
De SiteMap klasse is een in-memory weergave van de navigatiestructuur voor een site, die wordt geleverd door een of meer siteoverzichtproviders. Deze klasse kan niet worden overgenomen.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Overname
-
SiteMap
Voorbeelden
Deze sectie bevat twee codevoorbeelden. In het eerste codevoorbeeld ziet u hoe u een siteoverzichtprovider declareert in een Web.config-bestand. In het tweede codevoorbeeld ziet u hoe u een SiteMap object gebruikt.
Het volgende codevoorbeeld is een Web.config configuratiesectie die laat zien hoe een XmlSiteMapProvider object wordt gedeclareerd als het standaardobject SiteMapProvider .
<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>
In het volgende codevoorbeeld ziet u hoe u het SiteMap object gebruikt door toegang te krijgen tot de statische leden om informatie over de RootNode en CurrentNode eigenschappen weer te geven. Vergelijk deze met de uitvoer die door het SiteMapPath besturingselement wordt weergegeven.
<%@ 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>
Opmerkingen
Siteoverzichten worden gebruikt in combinatie met de SiteMapDataSource, SiteMapPathen andere besturingselementen om een effectieve navigatie-interface weer te geven voor gebruikers om door een website te navigeren. Een SiteMap-object is een onderdeel van de ASP.NET sitenavigatie-infrastructuur die toegang biedt tot alleen-lezen siteoverzichtinformatie voor pagina-ontwikkelaars en ontwikkelaars beheren met behulp van navigatie- en SiteMapDataSource-besturingselementen. Andere onderdelen van de ASP.NET sitenavigatie-infrastructuur omvatten de SiteMapProvider en XmlSiteMapProvider klassen, het bestand Web.sitemap en de verschillende besturingselementen die werken met de klasse SiteMap, zoals het besturingselement SiteMapPath, om inhoud en menu's weer te geven.
De SiteMap heeft verschillende functies:
Het biedt het hoofdknooppunt van de sitenavigatiehiërarchie (er kan slechts één hoofdknooppunt zijn).
Hiermee wordt aangegeven welke siteoverzichtprovider de principal of standaardprovider is.
Hiermee worden alle providerobjecten bijgehouden die worden gebruikt voor het maken van de SiteMap.
In principe is het SiteMap een container voor een hiërarchische verzameling SiteMapNode objecten. De SiteMap relaties tussen de knooppunten worden echter niet onderhouden. In plaats daarvan wordt dit gedelegeerd aan de siteoverzichtproviders. De SiteMap fungeert als een interface voor de sitenavigatie-informatie (in de vorm van SiteMapNode objecten) die wordt bewaard door deze siteoverzichtproviders. Hiermee worden de providers bijgehouden van waaruit toegang kan worden verkregen tot sitenavigatiegegevens en wordt de Providers verzameling zichtbaar gemaakt. Een provider kan de siteoverzichtgegevens op elke manier opslaan, zolang deze de SiteMapProvider abstracte klasse uitbreidt, kan de SiteMap klasse ermee worden geïnitialiseerd.
De standaardprovider voor de SiteMap klasse is de XmlSiteMapProvider klasse, die werkt met een XML-configuratiebestand, Web.sitemap. U kunt echter uw eigen SiteMapProvider object schrijven en gebruiken om het siteoverzicht voor uw site te initialiseren. Zie voor een voorbeeld van een aangepaste siteoverzichtprovider SiteMapProvider.
Er wordt een standaardconfiguratie voor siteoverzichten opgegeven waarmee de configuratie van de sitenavigatie wordt beheerd. U kunt deze configuratie in het Web.config-bestand overschrijven, als u ervoor kiest om uw eigen siteoverzichtprovider te schrijven.
De SiteMap klasse biedt alleen statische leden voor prestaties en kan op elk gewenst moment op een bepaalde site worden geopend vanuit een webformulier- of webserverbesturingselement.
Eigenschappen
| Name | Description |
|---|---|
| CurrentNode |
Hiermee haalt u een SiteMapNode besturingselement op dat de momenteel aangevraagde pagina vertegenwoordigt. |
| Enabled |
Hiermee wordt een Booleaanse waarde opgehaald die aangeeft of een siteoverzichtprovider is opgegeven in het Web.config-bestand en of de provider van de siteoverzicht is ingeschakeld. |
| Provider |
Hiermee wordt het standaardobject SiteMapProvider voor het huidige siteoverzicht opgehaald. |
| Providers |
Hiermee haalt u een alleen-lezen verzameling benoemde SiteMapProvider objecten op die beschikbaar zijn voor de SiteMap klasse. |
| RootNode |
Hiermee haalt u een SiteMapNode object op dat de pagina op het hoogste niveau van de navigatiestructuur voor de site vertegenwoordigt. |
gebeurtenis
| Name | Description |
|---|---|
| SiteMapResolve |
Treedt op wanneer de CurrentNode eigenschap wordt geopend. |