Китай |
Управление HTML-элементами в ASP.NET
Программирование функциональности страницы ASP.NET
- Перейдите в Visual Studio .NET 2005 и откройте наш проект HTMLControls
- Добавьте к проекту новую страницу с отделенным кодом и именем HTMLInputRadioButton.aspx, перейдите в режим редактирования Source и удалите весь автоматически сгенерированный мастером код, кроме директивы @ Page, выделенной желтым фоном
- Вернитесь в Dreamweaver, где мы разработали интерфейсную часть страницы, и переведите редактор в режим Code
HTML-код заготовки интерфейсной страницы tmp.htm будет иметь следующий вид
<html> <head> <title>Элемент HTMLInputRadioButton</title> <meta content="text/html; charset=windows-1251" http-equiv="Content-Type"> </head> <body> <form method="post" name="form1"> <center> <h1> Элемент управления HTMLInputRadioButton</h1> <p> Выберите нужный цвет:</p> <table bgcolor="#99ffff" border="0" width="100%"> <tr> <td width="33%"> <input id="radio1" checked="" name="colorRadio" type="radio" value=""> Red </td> <td width="33%"> <input id="radio2" name="colorRadio" type="radio" value=""> Green </td> <td width="34%"> <input id="radio3" name="colorRadio" type="radio" value=""> Blue </td> </tr> </table> <p> Выберите нужный фрукт:</p> <table bgcolor="#99ff66" border="0" width="100%"> <tr> <td width="50%"> <input id="radio4" checked="" name="fruitRadio" type="radio" value=""> Бананы </td> <td width="50%"> <input id="radio5" name="fruitRadio" type="radio" value=""> Апельсины </td> </tr> </table> <input id="SubmitButton" name="" type="submit" value="Показать результат"> <hr> <a href="HTMLInputImage.aspx">Назад</a> <a href="HTMLInputText.aspx">Вперед</a> <table bgcolor="#ffccff" border="0" width="100%"> <tr> <th colspan="2" scope="col"> Результаты вычислений </th> </tr> <tr> <td> <h2 id="colorText" > </h2> </td> <td> <h2 id="fruitText" > </h2> </td> </tr> </table> </center> </form> </body> </html>Листинг 3.21. Код заготовки интерфейсной части страницы tmp.htm
- Выделите весь текст через меню Edit/Select All и скопируйте его через буфер в aspx-страницу ниже директивы @Page
- В режиме Design оболочки выделите все радиокнопки и кнопку Submit, удерживая клавишу Shift на клавиатуре, и через контекстное меню на одном из выделенных элементов выполните команду Run As Server Control, чтобы добавить к этим элементам атрибут runat="server" и тем самым сделать их обрабатываемыми на сервере
- Найдите в режиме Source теги colorText и fruitText и для каждого из них добавьте вручную атрибут runat="server", чтобы мы могли ими управлять через код C#
- Найдите в режиме Source дескриптор <form> и добавьте для него вручную атрибут runat="server" (иначе не будет работать!!!)
Отметьте для себя, что управляемые на сервере элементы имеют в верхнем левом углу зелененькие маркеры в виде треугольничков (как на форме, так и в панели Document Outline).
- Щелкните в кнопке Submit, чтобы создать обработчик в файле отделенного кода
- Введите в обработчик кнопки следующий код
protected void SubmitButton_ServerClick(object sender, EventArgs e) { if (radio1.Checked) colorText.InnerText = "Выбран цвет \"Красный\""; else if (radio2.Checked) colorText.InnerText = "Выбран цвет \"Зеленый\""; else if (radio3.Checked) colorText.InnerText = "Выбран цвет \"Синий\""; if (radio4.Checked) fruitText.InnerText = "Выбран фрукт \"Бананы\""; else if (radio5.Checked) fruitText.InnerText = "Выбран фрукт \"Апельсины\""; }Листинг 3.22. Код обработчика кнопки Submit
- Сделайте страницу HTMLInputRadioButton.aspx стартовой, постройте приложение и убедитесь, что все работает
Результат будет примерно таким
Упражнение 11. Элемент управления HTMLInputText
Элемент управления HTMLInputText позволяет программировать HTML-теги <input type="text> и <input type="password">. Эти теги позволяют пользователю вводить данные в текстовое поле, содержащееся в форме <form></form>. Программирование этих тегов позволяет динамически изменять атрибуты MaxLength, Size, Value.
Поле пароля отличается от текстового поля тем, что когда пользователь вводит в него текст, вводимые символы скрываются и отображаются символом звездочка (*).
- Добавьте к проекту новую страницу с отделенным кодом и именем HTMLInputText.aspx
- В панели Toolbox откройте вкладку HTML и поместите на форму следующие компоненты:
- Из предыдущей страницы скопируйте ссылки и добавьте их в HTML-код текущей страницы между закрывающим дескрипторами </form> и </body>. Подправьте ссылки так
<a href="HTMLInputRadioButton.aspx">Назад</a> <a href="HTMLSelect.aspx">Вперед</a>
- Выделите по очереди двойным щелчком каждую ссылку и перенесите в ячейки таблицы для позиционирования на Web-форме
- Переведите поля и кнопку в режим обработки на сервере, выполнив для них команду контекстного меню Run As Server Control
- Установите в панели Properties свойство ReadOnly поля для вывода учетной записи в значение readonly
Окончательный вид Web-формы должен быть примерно таким
- Задайте для серверных элементов свойства id такие, какие будут иметь соответствующие переменные в кодовом файле C#, например: user, password, result, submit
- Щелкните дважды по кнопке Submit, чтобы создать обработчик
После таких действий код интерфейсного файла HTMLInputText.aspx.cs может быть примерно таким
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="HTMLInputText.aspx.cs" Inherits="HTMLInputText" %> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div style="text-align:center"> <h1>Элемент управления HTMLInputText</h1> Пользователь: <input id="user" style="width: 200px" type="text" runat="server" /> <p> Пароль: <input id="password" style="width: 200px" type="password" runat="server" /></p> <p>Учетная запись: <input id="result" style="width: 400px" type="text" readonly runat="server" /></p> <p>Заполните поля и нажмите кнопку Submit</p> <p></p> <input id="submit" type="submit" value="Получить учетную запись" onserverclick="Submit1_ServerClick" runat="server" /> <p></p> <hr /> <br /> <table width="30%" style="text-align:center"> <tr> <td style="width: 30%"><a href="HTMLInputRadioButton.aspx">Назад</a> </td> <td> </td> <td style="width: 30%"><a href="HTMLSelect.aspx">Вперед</a> </td> </tr> </table> </div> </form> </body> </html>Листинг 3.23. Интерфейсный код страницы HTMLInputText.aspx
- Внесите в обработчик ассоциированного файла CodeBehind (файл HTMLInputText.aspx.cs) следующий код
protected void Submit1_ServerClick(object sender, EventArgs e) { if (user.Value == "") { result.Value = "Введите имя пользователя"; return; } else if (password.Value == "") { result.Value = "Введите пароль"; return; } else result.Value = "User=" + user.Value + " " + "Password=" + password.Value; }Листинг 3.24. Код обработчика файла HTMLInputText.aspx.cs
- Сделайте страницу HTMLInputText.aspx стартовой и постройте проект. Убедитесь в исправной работе страницы