Экспресс курс по ASP .NET. День второй

Привет всем.

Ну вот, спустя месяц :) предоставляю долгожданный урок 2. Назовем его Связь кода с web-формой.
К сожалению, я не располагаю большим количеством времени, чтобы расписывать весь объем информации, который планировалось описать, поэтому буду излагать кратко.

----------------------<cut>----------------------

Для краткости буду некоторые темы объединять в одну и предоставлять Вашему вниманию только наиболее ценную и основную информацию (так сказать «разжеванную»).
Если возникнут какие-либо вопросы, смело задавайте.

Как я уже рассказывал, web-формы (ну или странички) в ASP .NET имеют расширение ASPX. С каждой web-формой связан исходный код (как и в традиционных Windows-приложениях), описывающий некоторое поведение формы (обычно реакция на разные события – загрузка, выгрузка и т.п.).
Попробуйте создать web-сайт в Visual Studio. Вы увидите в окне Project Manager, что созданная по умолчанию страничка Default.aspx имеет вложенный узел, содержащий файл Default.aspx.cs. Это как раз и есть исходник формы.
Как связываются странички со своими исходниками?
Откройте файл Default.aspx. в режиме Source. Обратите внимание на начало странички директиву

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default"%>

Как раз атрибут CodeFile указывает на то, к какому файлу обращается ASPX форма. Inherits – указывает класс, производный от Page, описывающий поведение формы.
Этот класс является partial-классом (новшество C# 2.0), т.е. может быть разбит на несколько файлов.
Для чего это нужно знать? Попробуйте добавить на форму элемент управления, например, TextBox. В Source режиме дизайна web-формы вы увидите примерно это:

<asp:TextBox ID=”TextBox1” runat=”server” и т.д.>

Обратите внимание, что TextBox1 – это внутренний идентификатор нашего текстового поля.
Помимо всего прочего – это имя объекта, и где-то в исходном коде класса _Default (благодаря partial class, скрытым от любопытных глаз) появилось объявление, типа:

protected System.Web.UI.TextBox TextBox1;

Это говорит о том, что мы можем внутри нашего класса использовать элемент управления, ссылаясь на имя TextBox1, соответствующее идентификатору тега. Именно так происходит взаимосвязь элементов управления и их реальных объектов в коде.

Примерно таким же способом происходит связь с событиями:
В исходнике формы:

<asp:TextBox ID=”TextBox1” runat=”server” OnChange=”TextBox1_Change” ...>

Ну и исходник класса будет содержать примерно следующий код, добавляющий событие:

TextBox1.OnChange += new EventHandler(TextBox1_Change);

Естественно, добавится функция TextBox1_Change(object sender, EventArgs e) {}, которую Вы можете использовать в своих целях.
В конечном итоге, мы видим только последний момент в исходном коде, остальное скрыто от наших глаз (иногда это удобно).

Спешу напомнить, что событие изменения текста произойдет после отправки формы на сервер, когда клиентом будет вызвана функция PostBack.
Об этом мы обязательно поговорим на следующих уроках.

Тэги:

Комментарии

    Нет комментариев
комментарии
^ Наверх