Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #79, ИЮЛЬ 2005 г.

Легкий путь к великим делам

Иван Касатенко

Хакер, номер #079, стр. 079-120-4


Мы уже говорили, что ASP.NET — это серверная технология, значит, все должно происходить на сервере, а раз так, то нужно сообщить, какие именно компоненты в твоем коде будут обрабатываться на сервере. В связи со всем этим преобразуем код до следующего:

<html><head><title>Добро пожаловать</title></head>

<body>

<h1>Суммируем</h1>

<form runat=”Server”>

<p><i>Число 1: </i><input type=”text” id=”n1” runat=”Server”></p>

<p><i>Число 2: </i><input type=”text” id=”n2” runat=”Server”></p>

<p><input type=”submit” value=”Суммировать”></p>

<p><i>Результат: </i><b>неопределен</b></p>

</form>

</body>

</html>

Сохрани этот файл и попробуй зайти на страничку при помощи любимого браузера. Что изменилось по сравнению с прошлой версией? Ничего? Смотри внимательнее... Правильно! Теперь после нажатия кнопки «Суммировать» значения в полях ввода остаются.

Это одна из важнейших особенностей ASP.NET: данные элементов управления хранятся между postback’ами. Это позволяет веб-приложениям во многом имитировать поведение обычных виндовых программ. У тебя же после нажатия кнопки «Пуск» не пропадают значения всех полей ввода, так? Обрати внимание: НИ СТРОЧКИ КОДА ты еще не написал! Сколько времени ты потратил бы на написание такой, в общем-то, разумной и очевидной функциональности на PHP? 15 минут? А если для десятка страниц? Что ни говори, ASP.NET в этом плане выигрывает!

Важно, что за сохранение данных отвечают элементы управления, а не сама подсистема ASP.NET. Это к тому, что, если ты вдруг заполнишь офигенный hash пользовательскими данными где-нибудь в твоей ASPX-странице, то он к концу запроса удалится, ибо сохранять его содержимое — твоя забота.

Но стоп! Мы же еще не написали ни строчки кода, а значит, приложение пока не обладает нужной функциональностью. Это определенно нужно исправить! Для начала заменим кнопку <input type=“submit” ...> на кнопку ASP.NET:

<asp:Button RunAt="server" OnClick="ClickIt" Text="Суммировать" />

Как видишь, тут присутствуют, помимо описаний свойств (свойства Text), еще и объявление обработчика события, который мы незамедлительно и напишем, добавив к концу файла что-то вроде этого (не забывай, что все обрабатываемое ASP.NET должно иметь атрибут RunAt=”server”):

<script language="C#" runat="server">

void ClickIt(object sender, EventArgs e)

{

Result.Text = "Проверка обработчика событий";

}

</script>

И последний штрих на данном этапе: как ты видишь, в обработчике событий я упомянул некий объект “Result”. Объявим его на страничке и получим следующий код (не считая скрипта, который мы добавили выше, ненужных заголовков и прочей ерунды):

<form runat=”Server”>

<p><i>Число 1: </i><input type=”text” id=”n1” runat=”Server”></p>

<p><i>Число 2: </i><input type=”text” id=”n2” runat=”Server”></p>

Назад на стр. 079-120-3  Содержание  Вперед на стр. 079-120-5