- •А.А. Волосевич
- •5. Технология asp.Net 4
- •5. Технология asp.Net
- •5.1. Общие концепции asp.Net
- •5.3. Структура aspx-файла
- •1. Директивы страницы.
- •2. Серверные элементы управления и серверная форма.
- •5.4. Директивы страницы
- •5.5. Класс system.Web.Ui.Page
- •5.6. ЖИзненный цикл страницы
- •1. Подготовка страницы к выполнению
- •1.1. Событие PreInit
- •1.2. Событие Init
- •1.3. Событие InitComplete
- •1.4. Восстановление состояния представления
- •1.5. Обработка данных, принятых в результате возврата формы
- •1.6. Событие PreLoad
- •1.7. Событие Load
- •1.8. Обработка динамически созданных элементов управления
- •2. Обработка возврата формы
- •2.1. Обнаружение изменений в состоянии элементов управления
- •2.2. Обработка серверного события возврата формы
- •3.4. Генерирование разметки
- •3.5. Событие Unload
- •5.7. Общий обзор серверных элементов управления
- •5.8. Элементы управления html
- •5.9. Элементы управления web
- •5.10. Проверочные элементы управления
- •5.11. Эталонные страницы и темы
- •5.12. Некоторые приёмы работы со страницами
- •5.13. Связывание с данными
- •5.14. Списковые элементы управления
- •5.15. Элементы управления для Источников данных
- •5.16. Таблицы, связанные с данными
- •5.17. ОтоБражение отдельных записей
- •5.18. Конфигурирование веб-приложений
- •5.19. Инфраструктура обработки зАпроса
- •5.21. Модель поставщиков
- •5.22. Поддержка Сохранения Состояния
- •5.23. Кэширование в aSp.Net
- •5.24. Обеспечение безопасносТи в веб-приложениях
- •5.25. Управление членством и роЛями
- •5.26. Профили пользователя
- •5.27. Локализация и ресурсы
- •5.28. Пользовательские элементы управления
5.3. Структура aspx-файла
Задачей параграфа является указание элементов, образующих файл разметки страницы .aspx. Напомним, что наряду с файлом разметки страницы, составной частью страницы является, как правило, и файл Code Behind.
Рассмотрим пример простой aspx-страницы.
<%-- 1. Директива страницы --%>
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApp._Default" %>
<%-- 4. Блок серверного кода --%>
<script runat="server">
protected void btnSend_Click(object sender, EventArgs e)
{
tbxName.Text = tbxName.Text.ToUpper();
}
</script>
<%-- 3. Обычный HTML --%>
<html>
<body>
<%-- 5. Блок рендерного кода --%>
<% for (int i = 0; i < 10; i++) Response.Write("Hello"); %>
<form id="form1" runat="server">
<div>
Input name:
<%-- 2. Серверные элементы управления --%>
<asp:TextBox ID="tbxName" runat="server" />
<asp:Button ID="btnSend" runat="server"
OnClick="btnSend_Click" />
</div>
</form>
</body>
</html>
Выделим следующие элементы страницы.
1. Директивы страницы.
Директивы используются для установки отдельных параметров страницы, таких как язык программирования для кода страницы или подключение пространства имен. Директива начинается с символа @, за которым следует имя директивы и набор атрибутов. Директивы могут размещаться в любом месте страницы, но вне HTML-элементов. Как правило, директивы помещают в начале страницы.
2. Серверные элементы управления и серверная форма.
Серверные элементы управления описываются с помощью специальных тэгов с обязательным атрибутом runat="server". Они соответствуют полям в классе страницы. Серверный элемент управления обладает набором свойств, установка которых возможна на странице как задание соответствующий атрибутов. Все серверные элементы должны быть размещены в пределах серверной формы (<form runat="server">).
3. HTML-код. HTML-код не обрабатывается процессом ASP.NET специальным образом, а сразу пересылается клиенту. Выводом HTML-кода занимается специальный внутренний метод класса, который соответствует странице.
4. Блоки серверного кода. Это блоки, обрамленные тэгом <script> с обязательным атрибутом runat="server". Блоки серверного кода транслируются в члены класса, соответствующего странице. В приведенном примере класс будет содержать метод btnSend_Click(). Отметим, что наличие блоков серверного кода на странице противоречит концепции Code Behind. Согласно данной концепции код, связанный со страницей, должен быть помещен в отдельный класс, от которого наследуется класс страницы.
5. Блоки рендерного кода. Блоки рендерного кода используются для генерации потока вывода. При обработке на сервере блоки рендерного кода помещаются непосредственно в метод, выполняющий вывод HTML-кода. Если блок рендерного кода записывается в форме <%= выражение %>, то в метод вставляется вывод вычисленного выражения.
Кроме упомянутых выше элементов, страница ASP.NET может содержать комментарии, блоки привязки данных (они будут подробно рассмотрены далее), клиентские скрипты.