Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
web2.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
157.49 Кб
Скачать

Вкладені майстер-сторінки

Шаблони дизайну можуть успадковувати інші шаблони. Наприклад, сайт складається з кількох розділів. Всі сторінки сайту мають спільні елементи, і всі сторінки розділу мають інші загальні елементи. Сайт квіткового магазину складається з розділів багаторічних і однорічних квітів. Для них створені шаблони, які успадковують загальний шаблон сайту:

<% @ Master language = "C #" masterpagefile = "~ / Site4.master"%>

<asp: content contentplaceholderid = "SectionContents" runat = "serv -

er ">

    <h3> Perrenials </ h3>

    <asp:contentplaceholder id="FlowerText" runat="server"/>

    <br /> <br />

    <asp:contentplaceholder id="FlowerPicture" runat="server"/>

</ asp: content>

Сторінка, що описує нарциси, знаходиться у розділі багаторічних квітів і успадковує шаблон SectionPerrenials:

<% @ Page language = "C #" masterpagefile = "~ / SectionPerrenials.master"

%>

<asp: content id = "FlowerText" ContentPlaceHolderId = "FlowerText"

runat = "server">

    Daffodils bloom early in spring and welcome the growing sea -

son.

</ asp: content>

<asp: content id = "FlowerPicture"

ContentPlaceHolderId = "FlowerPicture" runat = "server">

    <asp: image id = "image1" runat = server imageurl = "~ / images/daf-

fodil.jpg "/>

</ asp: content>

Послідовність подій

Коли складова сторінка формується на сервері, відбуваються події і сторінки шаблону, і сторінки змісту. Порядок цих подій корисно знати, якщо ми хочемо програмувати їх обробники.

  • Ініціалізація вкладених елементів управління головної сторінки.

  • Ініціалізація вкладених елементів управління сторінки змісту.

  • Ініціалізація найголовнішої сторінки.

  • Ініціалізація сторінки змісту.

  • Загрузка (Page_Load) Сторінки змісту.

  • Загрузка (Page_Load) Головної сторінки.

  • Подія Page_LoadComplete сторінки змісту.

  • Завантаження дочірніх елементів управління управління головної сторінки.

  • Завантаження дочірніх елементів управління управління сторінки змісту.

Подія LoadComplete було введено для того, щоб можна було звернутися із сторінки змісту до елементів головної сторінки, створеним в її Page_Load. Це не можна зробити в обробнику Page_Load сторінки змісту, так як вона завантажується до головної сторінки.

Сторінки шаблонів для конкретних платформ

У багатьох випадках програми розробляються для перегляду на різних видах контейнерів. Це можуть бути різні браузери або програми перегляду web-сайтів на кишенькових комп'ютерах і мобільних телефонах.

Тому ASP. NET 2.0 дозволяє в атрибуті MasterPageFile директиви Page визначити різні сторінки шаблону для конкретних контейнерів:

<% @ Page Language = "VB" MasterPageFile = "~ / Wrox.master"

Mozilla: MasterPageFile = "~ / WroxMozilla.master"

Opera: MasterPageFile = "~ / WroxOpera.master"%>

  1. Створення структури переходів 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.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]