SiteMap Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Класс SiteMap — это хранимое в памяти представление структуры переходов узла, которая предоставляется одним или несколькими поставщиками карты веб-узла. Этот класс не наследуется.
public ref class SiteMap abstract sealed
public static class SiteMap
type SiteMap = class
Public Class SiteMap
- Наследование
-
SiteMap
Примеры
Этот раздел содержит два примера кода. В первом примере кода показано, как объявить поставщик карты сайта в файле Web.config. Во втором примере кода показано, как использовать SiteMap объект.
В следующем примере кода показан раздел конфигурации Web.config, демонстрирующий XmlSiteMapProvider объявление объекта в качестве объекта по умолчанию 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>
В следующем примере кода показано, как использовать SiteMap объект путем доступа к статическим членам для отображения сведений RootNode о свойствах и CurrentNode свойствах. Сравните его с выходными данными, отображаемыми элементом SiteMapPath управления.
<%@ 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>
Комментарии
Карты сайтов используются в сочетании с SiteMapDataSourceSiteMapPathэлементами управления и другими элементами управления для отрисовки эффективного интерфейса навигации для пользователей для навигации по веб-сайту. SiteMap Объект является компонентом инфраструктуры навигации ASP.NET сайта, которая предоставляет доступ к сведениям карты сайта только для чтения для разработчиков страниц и управления с помощью навигации и SiteMapDataSource элементов управления. Другие компоненты инфраструктуры навигации ASP.NET сайта включают в себя SiteMapProvider и XmlSiteMapProvider классы, файл Web.sitemap и различные элементы управления, которые работают с SiteMap классом, например SiteMapPath элементом управления, для отображения содержимого и меню.
В ней SiteMap есть несколько функций:
Он предоставляет корневой узел иерархии навигации сайта (может быть только один корневой узел).
Он определяет, какой поставщик карты сайта является субъектом или поставщиком по умолчанию.
Он отслеживает все объекты поставщика, которые используются для создания SiteMap.
По сути, SiteMap это контейнер для иерархической коллекции SiteMapNode объектов. Однако связь SiteMap между узлами не поддерживается; скорее она делегирует это поставщикам карт сайта. Он SiteMap выступает в качестве интерфейса для сведений SiteMapNode о навигации сайта (в виде объектов), которые хранятся этими поставщиками карт сайта. Он отслеживает поставщиков, из которых он может получить доступ к данным навигации сайта и предоставляет свою Providers коллекцию. Поставщик может хранить сведения о карте сайта любым способом, если он расширяет SiteMapProvider абстрактный класс, SiteMap класс может быть успешно инициализирован из него.
Поставщиком по умолчанию для SiteMap класса является XmlSiteMapProvider класс, который работает с XML-файлом конфигурации Web.sitemap. Однако вы можете написать собственный SiteMapProvider объект и использовать его для инициализации карты сайта. Пример пользовательского поставщика карты сайта см. в разделе SiteMapProvider.
Указана конфигурация карты сайта по умолчанию, которая управляет конфигурацией навигации сайта. Эту конфигурацию можно переопределить в файле Web.config, если вы решите написать собственный поставщик карты сайта.
Класс SiteMap предлагает только статические члены для повышения производительности и доступ к нему можно получить в любое время на данном сайте из веб-формы или веб-серверного элемента управления.
Свойства
CurrentNode |
Возвращает элемент управления SiteMapNode, представляющий запрашиваемую в данный момент страницу. |
Enabled |
Возвращает логическое значение, показывающее, указан ли поставщик карты веб-узла в файле Web.config и разрешен ли он. |
Provider |
Возвращает объект SiteMapProvider, используемый по умолчанию для текущей карты веб-узла. |
Providers |
Возвращает доступную только для чтения коллекцию именованных объектов SiteMapProvider, которые доступны в классе SiteMap. |
RootNode |
Возвращает объект SiteMapNode, который представляет страницу верхнего уровня структуры переходов веб-узла. |
События
SiteMapResolve |
Генерируется при доступе к свойству CurrentNode. |