Вход/Регистрация
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.

  • Читать дальше
  • 1
  • ...
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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