Легкий путь к великим делам Иван Касатенко Хакер, номер #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> |