- •Огляд сучасних Інтернет - технологій. Технологія asp.Net
- •Серверні елементи керування Label, TextBox, Button, Image, Table
- •Робота з xml
- •Файли перетворення документа
- •Файли визначення схеми документа
- •Клас XmlReader
- •Клас xPathDocument
- •Елемент управління xml
- •Створення простої сторінки, що використовує інформацію з бази даних
- •Елементи керування для відображення даних (repeater, datalist і datagrid)
- •Шаблони дизайну сторінок asp.Net
- •Зміст за замовчуванням
- •Програмне призначення головної сторінки
- •Вкладені майстер-сторінки
- •Послідовність подій
- •Створення структури переходів Web вузла
- •Елемент керування SiteMapPath
- •Програмне керування TreeView
- •Елемент керування Menu
Вкладені майстер-сторінки
Шаблони дизайну можуть успадковувати інші шаблони. Наприклад, сайт складається з кількох розділів. Всі сторінки сайту мають спільні елементи, і всі сторінки розділу мають інші загальні елементи. Сайт квіткового магазину складається з розділів багаторічних і однорічних квітів. Для них створені шаблони, які успадковують загальний шаблон сайту:
<% @ 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"%>
Створення структури переходів 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.
