Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 291

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 285 286 287 288 289 290 < 291 > 292 293 294 295 296 297 .. 320 >> Следующая

Главное различие между классическими ASP и ASP.NET заключается в том, что страница *.aspx, которую запрашивает внешний клиент, представлена уникальным классом С#, на который и указывает атрибут Codebehind. Когда клиент запрашивает страницу, среда выполнения ASP.NET создает объект этого класса. Этот файл не показывается в окне Solution Explorer. Чтобы его открыть, необходимо щелкнуть правой кнопкой мыши на уже открытом файле * .aspx и в контекстном меню выбрать View Code. Изначально содержимое этого файла выглядит следующим образом:
namespace FirstWebAppl ication {
using System:
using System. Col lections:
using System. ComponentMode"!:
using System.Data:
using System.Drawing;
using System.Web:
using System.SessionState:
using System.Web.UI:
using System.web.Ul.webControls;
using System.Web.UI-HtmlControls:
public class WebForml : System.Web.UI.Page
public WebForml()
Page.lnit new System.EventHanriierpeoe !pit);
}
protected void Page_Load(object sender. System. EventArgs e) {
Il Добавляем пользовательский код для инициализации страницы
protected void Page_Init(object sender. EventArgs e) {
Initial izeComponentO;
}
private void Initial izeComponentO
{
this.Load +- new System.EventHandler(this.Page_Load):
}
I
}
Как мы видим, исходный код очень простой. Конструктор класса устанавливает обработчик события для события I nit. Реализация этого обработчика вызывает метод InitializeComponentO, который, в свою очередь, устанавливает обработчик события Load.
Тип System.Web.UI.Page
Как мы видим, любая страница ASP.NET представлена классом, производным от System.Web. UI .Page. Этот класс определяет свойства, методы и события, общие для
724 Глава 14 * Разработка web-приложений и ASP.NET
всех страниц, предназначенных для выполнения в среде ASP.NET. Некоторые наиболее важные свойства этого класса представлены в табл. 14.4.
Таблица 14.4. Свойства класса Page
Свойство Описание ~~ ~"
Application Возвращает объект HttpApplicntionState
Cache Возвращает объект Cache, в котором хранятся данные приложения, частью
которого является эта страница
IsPostBack Возвращает значение, определяющее, была ли эта страница загружена клиентом в первый раз или она загружена повторно в ответ на переданные клиентом данные
Request Возвращает объект HttpRequest, используемый для получения информации
о входящем запросе HTTP
Response Возвращает объект HttpResponse, при помощи которого можно скомпоновать данные, возвращаемые браузеру клиента
Server Возвращает объект HttpServerUtility
Session Возвращает объект System.Web.SessionState.HttpSessionState, при помощи
которого можно получить информации о текущем сеансе подключения
Как мы видим, свойства класса Page обеспечивают нам те же возможности, которые были в нашем распоряжении в классических ASP. В классе Page также имеется несколько унаследованных методов (они используются редко) и несколько очень важных событий, представленных в табл. 14.5.
Таблица 14.5. Наиболее важные события класса Page Событие Описание
Init Это событие происходит, когда страница инициализируется, Это — первое
событие жизненного цикла страницы
Это событие происходит после события Init Обработчик этого события можно использовать для настройки любых элементов управления WebForm
Unload Происходит при выгрузке объекта из памяти. Можно использовать, к примеру, _для освобождения ресурсов__
Обработчик события Load — лучшее место установления соединения с источником данных (например, для заполнения на форме элемента управления Web Form DataGrid) или выполнения других подготовительных действий. Обработчик события Unload можно использовать, например, для закрытия этого соединения и выполнения других аналогичных действий.
Связка *.aspx/Codebehind
Помимо готовых членов, унаследованных от Page, мы можем определить в своем классе С# собственные члены, которые могут быть вызваны (не напрямую) при помощи блоков <%. ¦ .%> в файле *.aspx. В классических ASP все дополнительные возможности приходилось определять непосредственно в коде файла *.asp. В результате этот файл превращался в совершеннейшие джунгли из тегов HTML и кода VBScript (или JavaScript). Читать такие файлы было очень тяжело, а использовать их код повторно — еще тяжелее.
Архитектура web-приложения ASRNET 725
В ASP.NET эта проблема решена за счет того, что код представления (то есть код для генерации кода HTML) помещен в файл *.aspx, а прочая программная логика — обычным образом в файл С# *.aspx.cs.
Как же происходит обращение к пользовательским членам класса, производного от Page? Предположим, что мы определили в таком классе простенькую функцию, возвращающую текущее значение даты и времени:
IHiblic class i-biT'eml : Systems**. UI. Page {
//Автоматически сгенерированный код.,, public string GetDateT'iret)
return Qj;eTime.No*.To5trinQ{):
}
Обратиться к этой функции из файла *.aspx можно так: <body>
<!- Получаем информацию о времени от класса С# ->
<S Response. Wri te(GetDateTimeO); *>
Предыдущая << 1 .. 285 286 287 288 289 290 < 291 > 292 293 294 295 296 297 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100