Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
[ПСП] / lab22.doc
Скачиваний:
80
Добавлен:
31.05.2015
Размер:
6.19 Mб
Скачать

Тип System.Web.Ui.Page

Как мы видим, любая страница ASP.NET представлена классом, производным от System.Web.UI.Page. Этот класс определяет свойства, методы и события, общие для всех страниц, предназначенных для выполнения в среде ASP.NET. Некоторые наи­более важные свойства этого класса представлены в табл. 14.4.

Таблица 14.4. Свойства класса Page

Свойство

Описание

Application

Возвращает объект HttpApplicationState

Cache

Возвращает объект Cache, в котором хранятся данные приложения, частью которого является эта страница

IsPostBack

Возвращает значение, определяющее, была ли эта страница загружена клиентом в первый раз или она загружена повторно в ответ на переданные клиентом данные

Request

Возвращает объект HttpRequest, используемый для получения информации о входящем запросе HTTP

Response

Возвращает объект HttpResponse, при помощи которого можно скомпоновать данные, возвращаемые браузеру клиента

Server

Возвращает объект HttpServerUtility

Session

Возвращает объект System.Web.SessionState.HttpSessionState, при помощи которого можно получить информации о текущем сеансе подключения

Как мы видим, свойства класса Page обеспечивают нам те же возможности, кото­рые были в нашем распоряжении в классических ASP. В классе Page также имеет­ся несколько унаследованных методов (они используются редко) и несколько очень важных событий, представленных в табл. 14.5.

Таблица 14.5. Наиболее важные события класса Page

Событие

Описание

Init

Это событие происходит, когда страница инициализируется. Это — первое событие жизненного цикла страницы

Load

Это событие происходит после события Init. Обработчик этого события можно использовать для настройки любых элементов управления WebForm

Unload

Происходит при выгрузке объекта из памяти. Можно использовать, к примеру, для освобождения ресурсов

Обработчик события Load — лучшее место установления соединения с источ­ником данных (например, для заполнения на форме элемента управления WebForm DataGrid) или выполнения других подготовительных действий. Обработчик собы­тия Unload можно использовать, например, для закрытия этого соединения и вы­полнения других аналогичных действий.

Связка *.Aspx/Codebehind

Помимо готовых членов, унаследованных от Page, мы можем определить в своем классе С# собственные члены, которые могут быть вызваны (не напрямую) при помощи блоков <%...%> в файле *.aspx. В классических ASP все дополнительные возможности приходилось определять непосредственно в коде файла *.asp. В ре­зультате этот файл превращался в совершеннейшие джунгли из тегов HTML и ко­да VBScript (или JavaScript). Читать такие файлы было очень тяжело, а использо­вать их код повторно — еще тяжелее.

В ASP.NET эта проблема решена за счет того, что код представления (то есть код для генерации кода HTML) помещен в файл *.aspx, а прочая программная ло­гика — обычным образом в файл С# *.aspx.cs.

Как же происходит обращение к пользовательским членам класса, производ­ного от Page? Предположим, что мы определили в таком классе простенькую функ­цию, возвращающую текущее значение даты и времени:

public class WebForml : System.Web.UI.Page

// Автоматически сгенерированный код... public string GetDateTime()

{

return DateTime.Now.ToString();

}

Обратиться к этой функции из файла *.aspx можно так:

<body>

<!- Получаем информацию о времени от класса С# ->

<% Response.Write(GetDateTime()); %>

<form method="post" runat="server" ID=Form1>

</form>

</body>

Конечно, можно использовать нужные нам унаследованные от Page члены непо­средственно внутри класса С#. Например, можно определить нашу функцию так:

public class WebForml : System.Web.UI.Page

{

// Автоматически сгенерированный код... public void GetDateTime()

{

Response.Write(“It is now " + DateTime.Now.ToString());

}

}

А затем просто вызывать эту функцию:

<!- Получаем время ->

<% GetDateTime(); %>

Соседние файлы в папке [ПСП]