Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Java и C# технологии.doc
Скачиваний:
171
Добавлен:
01.03.2016
Размер:
3.04 Mб
Скачать
        1. Обработка шаблонов средой asp.Net

Во время первого обращения к какой-либо странице, ASP.NET осуществляет поиск и компиляцию сборок для всех шаблонов в директории. Эта операция занимает некоторое время, зависящее от количества страниц шаблонов в директории, но выполняется только один раз. Поэтому, если в директории присутствуют не использующиеся шаблоны, это не приводит к потерям производительности в процессе работы приложения, единственное неудобство – дополнительное время, а компиляцию ненужных сборок для неиспользуемых страниц.

При обращении к .aspxфайлу страницы с заданным шаблоном оформления процесс компиляции почти ничем не отличается от обычного процесса компиляции страницы, за исключением того, что создается класс шаблонаMasterPage,ссылка на который доступна в свойствеPage.Master.

Затем страница проходит все те шаги, которые описаны выше в этой статье, в результате чего генерируется HTML код, который отправляется клиенту. В полученном браузером HTML коде уже нельзя определить, какая часть кода задана в шаблоне оформления, а какая часть кода определена на самой странице, поскольку элементы управления ContentPlaceHolderиContentне имеют каких-либо HTML соответствий и не порождают дополнительных тегов, кроме своего содержимого.

<html>

<head id="ctl00_Head1">

<meta http-equiv="Content-Type" content="text/html;

charset=utf-8">

<title>Домашняя страница</title>

</head>

<body>

<table width="100%">

<tr><span id="ctl00_PageTitle"></span></tr>

<tr>

<table width="100%">

<tr>

<td>

<ul>

<li><a href="Page1.aspx">Страница 1</a></li>

<li><a href="Page2.aspx">Страница 2</a></li>

<li><a href="Page3.aspx">Страница 3</a></li>

</ul>

</td>

<td>

<form method="post" action="default.aspx"

id="__aspnetForm">

<div><input type="hidden" name="__VIEWSTATE" value=""

/></div>

<input name="ctl00$PageContent$txtName" type="text"

id="ctl00_PageContent_txtName" />

 

<input type="submit" name="ctl00$PageContent$btnShow"

value="Показать" id="ctl00_PageContent_btnShow" />

</form>

</td>

</tr>

</table>

</tr>

<tr><p align="right">Время: <span

id="ctl00_PageTime">20.03.2005</span></p></tr>

</table>

</body>

</html>

Поскольку шаблон является подмножеством страницы, то допустимо создавать вложенныешаблоны, указывая для шаблона в директивеMasterпуть к другому шаблону с помощью атрибутаMasterPageFile. Для этого необходимо в основном шаблоне определить элементы управленияContentPlaceHolder, а в "дочерних" шаблонах на ряду сContentPlaceHolderэлементами определить элементы управленияContentдля замещения содержимого элементовContentPlaceHolderбазового шаблона.

        1. Использование разных шаблонов для разных браузеров

Любому Web-разработчику хорошо известно, что разные браузеры (например, MicrosoftInternetExplorer,NetscapeNavigator,MozillaFirefoxи др.) по разному обрабатывают HTML код и, что особенно важно, обладают несколько разными программируемыми моделями, что усложняет создание клиентских сценариев.

Для разрешения этой проблемы существует два основных метода, которые используются в классическом ASP и в ASP.NET 1.x. Первый заключается в том, что браузеру клиента отправляется клиентский код, который, основываясь на типе и версии браузера, выполняет некоторые действия. Второй состоит в перенаправлении браузера пользователя на те страницы, которые специально оптимизированы под конкретный браузер.

ASP.NET 2.0 упрощает создание подобных страниц, поскольку среда выполнения генерирует HTML код для стандартных серверных элементов управления, основываясь на информации о браузере клиента. При использовании шаблонов оформления, можно создать несколько шаблонов, для каждого браузера и в директиве Pageстраницы указать, какой шаблон использовать.

<%@ Page ie:MasterPageFile="ieMainTemplate.master" opera:MasterPageFile="operaMainTemplate.master " mozilla:MasterPageFile="mozillaMainTemplate.master " %>

Список браузеров и используемые средой ASP.NETсвойства браузеров можно найти в директории:

%WINDIT%\Microsoft.NET\Framework\версия\CONFIG\Browsers