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.