Чтение онлайн

на главную - закладки

Жанры

C# для профессионалов. Том II

Ватсон Карли

Шрифт:

Отметим, что не все файлы .aspx требуют такой многослойной модели, можно использовать просто класс базовый формы Web в .NET в качестве базового класса для страницы, что используется по умолчанию. В этом случае файл

.aspx
должен включать весь код C# в блоках
<script>
, как упоминалось ранее.

Так как мы предоставляем специальный базовый класс для страницы, мы будем иметь специальные события. Чтобы гарантировать, что IIS знает об этом, мы используем атрибут

AutoEventWireup
, который означает, что обработчик событий
Page_Load
, вызываемый при загрузке
страницы, связывается автоматически с событием
OnPageLoad
. Задавая этот атрибут как
false
, мы должны предоставить, если потребуется, свой собственный код для выполнения этого, что даст нам большую свободу действий.

Теперь посмотрим на "код позади" кода, сгенерированного для этого файла. Чтобы сделать это, щелкнем правой кнопкой мыши на

WebForm1.aspx
в утилите анализа решения (solution explorer) и выберем View Code. Код
WebForm1.aspx.cs
должен загрузиться в текстовый редактор. Прежде всего можно видеть объявление пространств имен для приложения Web, за которым следует используемое по умолчанию множество ссылок, требуемое для базового использования:

namespace PCSWebAppl {

 using System;

 using System.Collections;

 using System.ComponentModel;

 using System.Data;

 using System.Drawing;

 using System.Web;

 using System.Web.SessionState;

 using System.Web.UI;

 using System.Web.UI.WebControls;

 using System.Web.UI.HtmlCotrols;

Двигаясь дальше, мы видим определение

WebForm1
— базового класса, используемого для страницы .aspx. Этот класс наследует из
System.Web.UI.Page
, базового класса форм Web:

 /// <summary>

 /// Краткое описание WebForm1

 /// </summary>

 public class WebForm1 : System.Web.UI.Page {

Остальная часть кода в этой форме выполняет различные инициализационные задачи, а также включает код, требуемый для создания форм Web в VS. Конструктор регистрирует обработчика событий

Page_Init
, вызываемого во время активации страницы и используемого VS для кода, связанного с созданием временных добавлений к форме (хранимых в
InitializeComponent
, который вызывается этим обработчиком). Существует также обработчик событий Page_Load, упоминавшийся ранее:

public WebForm1 {

Page.Init += new System.EventHandler(Page_Init)

}

protected void Page_Load(object sender, System.EventArgs e) {

// Поместите здесь код пользователя для инициализации страницы

}

protected void Page_Init(object sender, EventArgs e) {

//

// CODEGEN: Этот вызов требуется для ASP.NET Windows

// Form Designer.

//

InitializeComponent;

}

Сам

метод
InitializeComponent
содержится в блоке
#region
, поэтому мы используем схематичное представление в VS, чтобы его скрыть, поскольку он быстро заполнится сгенерированным кодом VS (так же как аналогичный ему метод в коде форм Windows):

#region код, созданный Web Form Designer

/// <summary>

/// Метод, требуемый для поддержки Designer; не изменяйте

/// содержимое этого метода с помощью редактора кода.

/// </summary>

private void InitializeComponent {

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

 }

}

Так как

AutoEventWireup
был задан как
false
, то
InitializeComponent
должен зарегистрировать
Page_Load
с событием
Load
.

Строго говоря, этот код больше, чем требуется для простой страницы формы Web ASP.NET, которую мы уже видели (хотя и в качестве тривиального примера). Однако созданная структура приспособлена для целей повторного использования и расширения с помощью технологий C#, не требуя заметного объема накладных расходов, поэтому мы будем ее использовать.

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

Созданный нами код делает пока еще очень немногое, поэтому далее нам нужно добавить некоторое содержимое. Можно сделать это в VS, используя построитель форм Web, который поддерживает режим перетаскивания элементов и добавления через код точно так же, как построитель форм Windows.

Существует четыре типа элементов управления, которые можно добавлять к страницам ASP.NET:

□ Элементы управления сервера HTML — элементы управления, которые имитируют элементы HTML, известные разработчикам HTML

□ Элементы управления сервера Web — новое множество элементов управления, некоторые из которых имеют такую же функциональность, как и элементы управления HTML, но с общей схемой имен свойств и т.д., служащей для облегчения разработки (и обеспечения согласованности с аналогичными элементами управления форм Windows); существует также несколько совершенно новых и очень мощных элементов управления, как мы увидим позже

□ Элементы управления проверкой достоверности — множество элементов управления, способных выполнять простую проверку ввода пользователя

□ Заказные и обычные элементы управления пользователя — элементы управления, используемые разработчиком, которые можно определить рядом способов, как будет показано в главе 18

Мы увидим полный список элементов управления сервера Web и проверкой достоверности в следующем разделе, вместе с примечаниями по использованию. Они не будут рассматриваться в этой главе. Эти элементы управления не предоставляют ничего такого, что не делают элементы управления сервера Web, а элементы управления сервера Web дают более насыщенную среду для тех, кто больше привык к программированию, чем к проектированию HTML. (Что должно относиться к большинству аудитории этой книги). Умение использовать элементы управления сервера Web, дает возможность пользоваться элементами управления сервера HTML без всяких проблем.

Поделиться:
Популярные книги

Город Богов 3

Парсиев Дмитрий
3. Профсоюз водителей грузовых драконов
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
5.00
рейтинг книги
Город Богов 3

Амазония

Роллинс Джеймс
101. Книга-загадка, книга-бестселлер
Приключения:
прочие приключения
9.34
рейтинг книги
Амазония

Свет во мраке

Михайлов Дем Алексеевич
8. Изгой
Фантастика:
фэнтези
7.30
рейтинг книги
Свет во мраке

Владеющий

Злобин Михаил
2. Пророк Дьявола
Фантастика:
фэнтези
8.50
рейтинг книги
Владеющий

Под маской, или Страшилка в академии магии

Цвик Катерина Александровна
Фантастика:
юмористическая фантастика
7.78
рейтинг книги
Под маской, или Страшилка в академии магии

Мастер 2

Чащин Валерий
2. Мастер
Фантастика:
фэнтези
городское фэнтези
попаданцы
технофэнтези
4.50
рейтинг книги
Мастер 2

Служанка. Второй шанс для дракона

Шёпот Светлана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Служанка. Второй шанс для дракона

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

Я — Легион

Злобин Михаил
3. О чем молчат могилы
Фантастика:
боевая фантастика
7.88
рейтинг книги
Я — Легион

Вечный. Книга II

Рокотов Алексей
2. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга II

Измена. Мой заклятый дракон

Марлин Юлия
Любовные романы:
любовно-фантастические романы
7.50
рейтинг книги
Измена. Мой заклятый дракон

Студент из прошлого тысячелетия

Еслер Андрей
2. Соприкосновение миров
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Студент из прошлого тысячелетия

Повелитель механического легиона. Том VIII

Лисицин Евгений
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII

Неудержимый. Книга XXII

Боярский Андрей
22. Неудержимый
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
Неудержимый. Книга XXII