русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Reference


Дата добавления: 2013-12-23; просмотров: 1639; Нарушение авторских прав


OutputCache

Assembly

Эта директива используется для непосредственной ссылки на сборку, с тем чтобы содержащиеся в ней классы и интерфейсы стали доступны коду на странице. Можно передать имя скомпилированной сборки

<%@ Assembly Name="имя сборки" %>

или путь к исходному файлу, который будет компилироваться при компиляции страницы:

<%@ Assembly Src="путь" %>

Этот тэг обычно не требуется, так как любая сборка, находящаяся в каталоге bin приложения ASP.NET, автоматически присоединяется к странице во время компиляции. Директива используется при подключении сборок из GAC или сборок из других каталогов

 

Директива применяется для контроля кэширования страницы на сервере. Подробнее работа с директивой @OutputCache будет рассмотрена ниже.

 

Данная директива позволяет динамически скомпилировать пользовательский элемент управления и поместить его в коллекцию Controls страницы или серверного элемента управления. Директива используется в соединении с методом Page.LoadControl().

5.4. Класс System.Web.UI.Page. События страницы

Любая aspx-страница компилируется в объект определенного класса. Этот класс является прямым или косвенным (если используется концепция Code Behind) наследником класса System.Web.UI.Page.

Рассмотрим класс System.Web.UI.Page подробнее. Свойства данного класса описаны в следующей таблице 38.

Таблица 38

Свойства класса System.Web.UI.Page

Имя свойства Описание
Application Объект класса HttpApplicationState, описывающий web-приложение, к которому относится страница. Для отдельного web-приложения существует ровно один объект Application, который используется всеми клиентами
Cache Объект класса Cache, ссылка на кэш страницы. По существу, класс Cache – это словарь, чье состояние фиксируется с помощью скрытых полей формы или других средств, чтобы данные могли сохраняться от одного запроса страницы к другому
ClientTarget Свойство позволяет переопределить встроенное в ASP.NET распознавание браузера и задать тот конкретный браузер (в виде строки-описания), которому предназначена страница. Любые элементы управления, которые зависят от браузера, будут использовать запись в свойстве ClientTarget
EnableViewState Булево значение, управляющее поддержкой View State для страницы. Значение свойства влияет на все элементы управления страницы. По умолчанию – значение true
ErrorPage URL страницы, которая показывается, если при компиляции или выполнении страницы произошло необработанное исключение или ошибка
IsPostBack Это булево свойство устанавливается в true, если страница выполняется в цикле обмена с клиентом. Ложное значение свойства указывает на то, что страница отображается первый раз, и для серверных элементов управления не сохранено View State. В этом случае нужно установить состояние элементов вручную – обычно в обработчике события Page_Load
IsValid Булево свойство; устанавливается в true, если проверочные элементы управления на странице сообщают, что условия проверки выполнены с положительным результатом. Если хотя бы одно условие проверки не выполнено, значение свойства – false
Request Ссылка на объект HttpRequest, обеспечивающий доступ к информации о HTTP-запросе
Response Ссылка на объект HttpResponse, обеспечивающий доступ к информации о HTTP-ответе
Server Объект класса HttpServerUtility, описывающий параметры web-сервера
Session Ссылка на объект класса HttpSessionState, хранящий данные текущей сессии пользователя в web-приложении
SmartNavigation Булево свойство, разрешающее поддержку Smart Navigation
Trace Объект класса TraceContext. Если на странице разрешена трассировка, то можно пользоваться данным свойством для записи особой информации в журнал трассировки
TraceEnabled Булево свойство, разрешающее поддержку трассировки
User Ссылка на объект, реализующий интерфейс IPrincipal и описывающий пользователя. Свойство используется при проведении аутентификации
Validators Коллекция проверочных элементов, размещенных на странице

Легко заметить, что некоторым из свойств страницы (ClientTarget, EnableViewState, ErrorPage, SmartNavigation, TraceEnabled) соответствуют атрибуты директивы @Page.



Свойство Trace удобно при отладке. Тип свойства – класс TraceContext. При помощи перегруженных методов Write() и Warn() данного класса в отладочную информацию страницы можно записать свою информацию. Булевское свойство TraceContext.IsEnabled позволяет включить или отключить трассировку, а свойство TraceContext.TraceMode управляет порядком сортировки отладочной информации (по категориям или по времени).

Рассмотрим пример страницы test.aspx:

<%@ Page Language="C#" Trace="true" %>

 

<script runat="server">

void Page_Load(object sender, EventArgs e) {

Trace.Write("Usual Message");

Trace.Warn("My Category", "Warn Message - draw in red");

}

</script>

 

<html>

<body>

Some Text

</body>

</html>

На странице при помощи директивы @Page включена трассировка, а в обработчике события загрузки страницы Page_Load() выводится два отладочных сообщения.

Рис. 14. Страница с отладочной информацией

Работу со свойствами Application, Cache, IsValid, Request, Response, Session, User, Validators рассмотрим более подробно позднее.

Основные методы класса System.Web.UI.Page перечислены в таблице 39.

Таблица 39

Методы класса System.Web.UI.Page

Имя метода Описание
DataBind() Выполняет связывание данных для всех элементов управления на странице
FindControl() Метод позволяет найти некий элемент управления на странице
LoadControl() Динамическая загрузка элемента управления из файла .ascx
LoadTemplate() Метод выполняет динамическую загрузку шаблона
MapPath() Метод строит физический путь для указанного элемента приложения
ResolveUrl() Преобразует виртуальный URL в абсолютный URL
Validate() Дает команду всем проверочным элементам на странице выполнить проверку

Использование методов MapPath() и ResolveUrl() демонстрирует следующая простая страница:

<%@ Page Language="C#" %>

 

<script runat="server">

void Page_Load(object sender, EventArgs e) {

Label1.Text = this.MapPath("test");

Label1.Text += this.ResolveUrl("test2.aspx");

}

</script>

 

<html>

<body>

<asp:Label ID="Label1" runat="server" />

</body>

</html>

Вид страницы в браузере показан на рисунке 15.

Рис. 15. Страница в браузере

Любая aspx-страница обладает определенным набором событий. Важно знать, что это за события и в какой последовательности они происходят. Это позволит разработчику корректно создавать собственные обработчики событий страницы.

Набор и последовательность событий страницы зависят от следующего фактора: показывается ли страница первый раз или страница отображается в цикле обмена с клиентом[40]. Если страница отображается в первый раз, то происходят такие события (в описанной последовательности):

1.Init. Событие происходит после того, как каждый управляющий элемент был создан и помещен во внутреннюю коллекцию элементов страницы.

2.Load. Установлены заданные в описании страницы свойства управляющих элементов. Как правило, в обработчике события Load помещается код, который выполняет дополнительную настройку свойств элементов – например, читает некоторые свойства из базы данных. Для того чтобы дополнительная настройка проходила только один раз, обычно проверяют значение свойства IsPostBack (if(!IsPostBack) ...).

3.PreRender. Каждый элемент управления готов к выводу.

4.SaveVeiwState. Информация о состоянии элементов управления сериализуется в закодированную строку и передается клиенту.

5.Render. Событие происходит перед выводом страницы клиенту.

6.Dispose. Страница и ее элементы управления освобождаются из памяти.

Если страница отображается не в первый раз, а в цикле обмена с клиентом, то дополнительно происходят следующие события:

1.Init.

2.LoadViewState. Информация о состоянии загружена в соответствующие свойства управляющих элементов.

3.Load.

4.RaisePostDataChanged. В управляющее элементы была помещена информация, которая передана методом POST протокола HTTP.

5.RaisePostBackEvent. Обрабатываются события, которые привели к отправке информации на сервер (такие, как нажатие кнопки).

6.PreRender.

7.SaveVeiwState.

8.Render.

9.Dispose.

Класс System.Web.UI.Page позволяет программисту задать обработчики следующих событий: Init, Load, Unload (вся информация страницы послана клиенту), PreRender, Error (на странице возникло необработанное исключение). При этом назначение обработчиков может быть выполнено двумя способами. В режиме автоматического связывания (директива @Page, атрибут AutoEventWireup="true") для назначения обработчика достаточно в блоке серверного кода записать метод со специальным именем в формате Page_<имя события>. Если режим автоматического связывания выключен, то методы обработки связываются с событиями в коде инициализации (конструкторе) с использованием соответствующих делегатов.

Рассмотрим пример страницы с обработчиками. Для простоты кода воспользуемся автоматическим связыванием. Разметим на странице поле ввода и кнопку и реализуем некоторые обработчики:

<%@ Page Language="C#" %>

 

<script runat="server">

void Page_Init(object sender, EventArgs e) {

TextBox1.Text = "Init...";

}

void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) Response.Write("First Load");

else Response.Write("Second Load or more...");

}

</script>

 

<html>

<body>

<form id="Form1" runat="server">

<asp:TextBox ID="TextBox1" runat="server" />

<asp:Button ID="But1" runat="server" Text="Button" />

</form>

</body>

</html>

Страница после первой загрузки показана на рисунке 16.

Рис. 16. Страница с обработчиками событий в браузере

5.5. Серверные элементы управления

Важным элементом технологии ASP.NET являются серверные элементы управления (server controls). Серверный элемент управления – это некий класс, объект которого агрегирован в страницу, то есть является полем класса-страницы. При выполнении страницы серверный элемент, как правило, транслируется в HTML-элемент управления.

Библиотека серверных элементов насчитывает порядка сотни классов. Условно все элементы можно разделить на следующие группы:

1.Серверные HTML-элементы – базирующиеся на сервере эквиваленты обычных HTML-элементов. Имеют те же атрибуты, что и обычные HTML-элементы.

2.Элементы управления Web Controls – набор элементов, равнозначный обычным HTML-элементам формы <form>. Имеют расширенный набор свойств и событий, облегчающий создание страницы.

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

4.Списковые элементы управления – обеспечивают различные способы построения списков. Помимо этого, списковые элементы могут быть связаны с данными, хранящимися как в локальных структурах, так и в базах данных.

5.Развитые элементы управления ASP.NET – создают сложные, специфичные для задач выходные данные (например, календарь или меняющийся баннер).

6.Мобильные элементы управления – используются при построении приложений ASP.NET для мобильных платформ.

Для всех серверных элементов управления справедливы следующие замечания. Настройку таких элементов можно выполнять программно в методах страницы. Как правило, при работе с визуальными элементами используется IDE, облегчающее настройку. В частности, для элементов и страницы имеется окно свойств и событий. Важно понимать, что значения свойств элементов транслируются в описании страницы в соответствующие атрибуты. Например, следующий фрагмент страницы показывает, что у элемента <asp:Button> (кнопка) заданы свойства ID (идентификатор элемента, имя поля в классе страницы), Text (надпись на кнопке), OnClick (имя метода-обработчика события):

<asp:Button ID="B1" OnClick="B1_Click" runat="server" Text="Send" />

При задании серверного элемента на странице используется соответствующий тэг с обязательным атрибутом runat="server".

В некоторых случаях элемент управления образует в описании страницы секцию, ограниченную открывающими и закрывающим тэгом, а свойство элемента задано как содержимое секции (literal content). Во фрагменте кода так задана надпись на странице:

<asp:Label id="Label1" runat="server">



<== предыдущая лекция | следующая лекция ==>
Register | No Name


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.