|
https://technet.microsoft.com/en-us/library/ms143221(v=sql.105).aspx |
Навигация по сайту
До сих пор мы создавали отдельные страницы. Web-приложения, которые обычно создаются для работы в Интернете, состоят из большого количества взаимосвязанных страниц. Переход с одной страницы на другую происходит по гиперссылкам. На многих сайтах создаются различные средства для путешествий по страницам. Панели навигации располагаются в верхней части страницы в виде полосы, справа или слева в виде древовидной структуры.
Курсы Учебные программы Учебники Новости Форум Помощь
Для того чтобы упростить разработку такой функциональности, в ASP .NET 2.0 предоставлена возможность в виде готовых элементов управления навигации.
Структура навигации должна быть описана в карте сайта. Она находится в файле .sitemap формата XML, который можно создать в диалоге New File, выбрав пункт Site Map. Имя этого файла по умолчанию — web.sitemap. Карта сайта служит источником информации для всех элементов управления группы Navigation. С ней можно работать программно с помощью класса SiteMap или через элемент управления — источник данных SiteMapDataSource.
Узлы siteMapNode могут вкладываться друг в друга, создавая иерархию. Логика вложенности узлов никак не связана с физическим расположением файлов. Каждый атрибут url в файле .sitemap должен быть уникальным.
Схема формата .sitemap:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="siteMap">
<xs:complexType>
<xs:sequence>
<xs:element ref="siteMapNode" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="siteMapNode">
<xs:complexType>
<xs:sequence>
<xs:element ref="siteMapNode" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="url" type="xs:string" />
<xs:attribute name="title" type="xs:string" />
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="keywords" type="xs:string" />
<xs:attribute name="roles" type="xs:string" />
<xs:attribute name="siteMapFile" type="xs:string" />
<xs:attribute name="Provider" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:schema>Чтобы сделать карту сайта доступной для элементов управления, используется провайдер типа XmlSiteMapProvider. Можно разработать собственный провайдер.
Редактирование карты сайта в Visual Studio 2005 облегчается с помощью технологии IntelliSense.
Атрибут title узла карты сайта создает текстовое описание страницы. Он используется как текст гиперссылки, создаваемой в TreeView или Menu. Атрибут description задает текст подсказки (Tooltip), связанной с этой гиперссылкой. Атрибут url описывает путь к странице внутри web-сайта. При этом для страниц в корневой директории достаточно указать их название. Если страница находится в поддиректории, путь указывается с помощью прямого слэша:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="Home" url="Default.aspx">
<siteMapNode title="Resume" url="Resume.aspx" />
<siteMapNode title="Links" url="Links.aspx" />
<siteMapNode title="Albums" url="Albums.aspx" >
<siteMapNode title="Photos" url="Photos.aspx" >
<siteMapNode title="Details" url="Details.aspx" />
</siteMapNode>
</siteMapNode>
<siteMapNode title="Register" url="Register.aspx" />
<siteMapNode title="Manage" url="Admin/Albums.aspx" >
<siteMapNode title="Photos" url="Admin/Photos.aspx" >
<siteMapNode title="Details" url="Admin/Details.aspx" />
</siteMapNode>
</siteMapNode>
</siteMapNode>
</siteMap>Элементы управления для навигации по сайту — TreeView, Menu, SiteMapPath.
Некоторые элементы навигации могут работать с картой напрямую, например SiteMapPath, но Menu и TreeView могут показывать карту сайта, только получая данные из SiteMapDataSource.
