
TextBox
Он заменяет элементы разметки <textbox> и <textarea>. Они оба вводят текст, только <textbox> — однострочный, а <textarea> — многострочный. Соответственно, при свойстве textmode, равном MultiLine, получится многострочное поле ввода, а при SingleLine — однострочное. Если textmode равен Password, введенные данные заменяются звездочками, как при <Input Type="Password">. Естественно, это нужно в основном для ввода пароля.
RadioButton
Переключатели не ходят в одиночку. Один переключатель на странице не имеет смысла. Нужны хотя бы два. Типичный набор переключателей определяется так:
<asp:RadioButton ID="RadioButton1" Runat="server" Text="Yes"
GroupName="Set1" />
<asp:RadioButton ID="RadioButton2" Runat="server" Text="No"
GroupName="Set1"/>
Атрибут Text выводится справа от переключателя. В этом примере важно, что у обоих переключателей совпадает свойство GroupName. Это позволяет им работать как одно целое. Преимущество отдельных переключателей над RadioButtonList в том, что между переключателями можно поместить любой текст, картинки и другие элементы.
RadioButtonList
Группа переключателей работает так, что выбор одного элемента из группы снимает выбор с других. Этот элемент управления подходит для выбора одного правильного ответа из нескольких:
<asp:RadioButtonList id="radSample" runat="server">
<asp:ListItem id="option1" runat="server" value="Option A" />
<asp:ListItem id="option2" runat="server" value="Option B" />
<asp:ListItem id="option3" runat="server" value="Option C" />
</asp:RadioButtonList>
Свойство radSample.SelectedItem.Value показывает выбранный элемент.
CheckBoxList
Некоторые голосования предполагают возможность выбора больше одного варианта. Так же реализованы и тесты, которые вы проходите в конце лекций.
<asp:Label ID="Label1" runat="server" Text="Как
реализуется связывание с данными в ваших ASP.NET 2.0
приложениях?"></asp:Label>
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
<asp:ListItem>На каждой страничке создаётся
SqlDataSource, с ним идёт декларативное связывание.</asp:ListItem>
<asp:ListItem>В проекте есть DataSet, на страничках
ObjectDataSourcе'ы, и с ними декларативное
связывание.</asp:ListItem>
<asp:ListItem>Недекларативное связывание, запрос
прописан на каждой страничке.</asp:ListItem>
<asp:ListItem>Недекларативное связывание с
использованием одного большого DataSet'а</asp:ListItem>
</asp:CheckBoxList>
Если в CheckBoxList множество вариантов, то можно их расположить в несколько столбцов. При этом можно двигаться сверху вниз — справа налево, или наоборот. Это зависит от RepeatDirection — Horizontal или Vertical. Текст может быть расположен справа или слева от флажка.
DropDownList
Аналог этого элемента в HTML — выпадающие меню. Они задаются с помощью тегов <SELECT> и </SELECT>, между которыми находятся один или несколько тегов <OPTION>.:
<BR>Каталог
<SELECT NAME="Выбор">
<OPTION>Компьютеры
<OPTION>Принтеры
<OPTION VALUE="Комплектующие"> Комплектующие
<OPTION SELECTED>Мониторы
<OPTION>Компакт-диски
</SELECT>
DropDownList выдаст тот же самый код, если будет определен так:
<asp:DropDownList id="Выбор" runat="server">
<asp:ListItem> Компьютеры </asp:ListItem >
<asp:ListItem >Принтеры</asp:ListItem >
<asp:ListItem > Комплектующие </asp:ListItem >
<asp:ListItem Selected="true"> Мониторы </asp:ListItem >
<asp:ListItem > Компакт-диски</asp:ListItem >
</asp:DropDownList >
Итак, если мы хотим перейти с написания страниц HTML к написанию кода ASP:
<asp:DropDownList> пишется вместо <SELECT>
<asp:ListItem > вместо <OPTION>
Вместо атрибута NAME пишем атрибут id.
Вместо атрибута SELECTED пишем атрибут Selected и присваиваем ему true.
Атрибут VALUE можно задать и в HTML. Если его нет, ASP .NET генерирует его из текста ListItem:
<select name="Выбор" id="Выбор">
<option value=" Компьютеры "> Компьютеры </option>
<option value="Принтеры">Принтеры</option>
<option value=" Комплектующие "> Комплектующие </option>
<option selected="true" value=" Мониторы "> Мониторы </option>
<option value=" Компакт-диски"> Компакт-диски</option>
</select>
Отличие серверных элементов управления в том, что их можно программировать на сервере и получать информацию от них тоже на сервере.
Попробуем написать такую страницу:
<%@ Page Language="C#" %>
<script runat="server" language="C#">
void Page_Load()
{
if (Page.IsPostBack)
lblMessage.Text="Вы выбрали"+ Category.SelectedItem.Value;
}
</script>
<html xmlns=""http://www.w3.org/1999/xhtml"">
<head>
<title>Выбор категории товаров</title>
</head>
<body>
<br />
<form id="Form1" runat="server">
Выберите категорию товаров<br />
<asp:DropDownList ID="Category" runat="server">
<asp:ListItem> Компьютеры </asp:ListItem>
<asp:ListItem>Принтеры</asp:ListItem>
<asp:ListItem> Комплектующие </asp:ListItem>
<asp:ListItem Selected="true"> Мониторы </asp:ListItem>
<asp:ListItem> Компакт-диски</asp:ListItem>
</asp:DropDownList>
<input type="Submit">
<br />
<asp:Label ID="lblMessage" runat="server" />
</form>
</body>
</html>
Запустите ее на выполнение, выберите "Компакт-диски" и нажмите на кнопку. На форме появится надпись "Вы выбрали Компакт-диски".