
- •Начальное руководство по разработкеweb-приложений и asp.Net.
- •Разработка web-приложений и asp.Net
- •Web-приложения и web-серверы
- •Что такое виртуальные каталоги?
- •Структура документа html
- •Форматирование текста средствами html
- •Заголовки html
- •Html-редактор Visual Studio.Net
- •Разработка форм html
- •Создаем пользовательский интерфейс
- •Добавление изображений
- •Клиентские скрипты
- •Пример клиентского скрипта
- •Реализация проверки введенных пользователем данных
- •Передаем данные формы (методы geTиPost)
- •Синтаксис строки запроса http
- •Создание классической страницы asp
- •Принимаем данные, переданные методом post
- •Первое приложение asp.Net
- •Некоторые проблемы классических asp
- •Некоторые преимущества asp.Net
- •Пространства имен asp.Net
- •Наиболее важные типы пространства имен System.Web
- •Приложение и сеанс подключения пользователя
- •Создание простого web-приложения на с#
- •Исходный файл *.Aspx
- •Файл web.Config
- •Исходный файл Global.Asax
- •Простой код asp.Net на с#
- •Архитектура web-приложения asp.Net
- •Тип System.Web.Ui.Page
- •Связка *.Aspx/Codebehind
- •Свойство Page. Request
- •Свойство Page.Response
- •Свойство Page.Application
- •Отладка и трассировка приложений asp.Net
- •Элементы управления WebForm
- •Создание элементов управления WebForm
- •Иерархия классов элементов управления WebForm
- •Виды элементов управления WebForm
- •Базовые элементы управления WebForm
- •Группа переключателей
- •Текстовое поле для ввода нескольких строк с полосой прокрутки
- •Элементы управления с дополнительными возможности
- •Элемент управления Calendar
- •Элемент управления AdRotator (баннерная рулетка)
- •Элемент управления для работы с источниками данных
- •Элемент управления DataGrid
- •Еще немного об источниках данных
- •Элементы управления для проверки вводимых пользователем данных
- •Обработка событий элементов управления WebForm
- •Подведение итогов
- •Web-cлужбы
Тип 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(); %>