
RadioButton
Переключатели не ходят в одиночку. Один переключатель на странице не имеет смысла. Нужны хотя бы два. Типичный набор переключателей определяется так:
<asp:RadioButton ID="RadioButton1" Runat="server" Text="Yes"
GroupName="Set1" />
<asp:RadioButton ID="RadioButton2" Runat="server" Text="No"
GroupName="Set1"/>
Атрибут Text выводится справа от переключателя. В этом примере важно, что у обоих переключателей совпадает свойство GroupName. Это позволяет им работать как одно целое. Преимущество отдельных переключателей над RadioButtonList в том, что между переключателями можно поместить любой текст, картинки и другие элементы.
У RadioButton есть событие CheckedChanged, которое вызывается, когда пользователь выбирает один из переключателей группы. Чтобы обработчик этого события вызывался, необходимо установить свойство AutoPostBack:
<%@ Page Language="C#" %>
<script runat="server">
protected void option1_CheckedChanged(object sender,
EventArgs e)
{
if(option1.Checked)
Message.Text = "Вы выбрали " + option1.Text;
if (option2.Checked)
Message.Text = "Вы выбрали " + option2.Text;
if (option3.Checked)
Message.Text = "Вы выбрали " + option3.Text;
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Шуточное голосование</title>
</head>
<body>
<br /><br />
У кого самые мохнатые лапы в мире?<br /><br />
<form runat="server" id="voting">
<asp:RadioButton id="option1" runat="server" Text="медведя"
OnCheckedChanged="option1_CheckedChanged" AutoPostBack = true
GroupName="Choice" /><br />
<asp:RadioButton id="option2" runat="server" Text="мохноногого
тушканчика" OnCheckedChanged="option1_CheckedChanged"
GroupName="Choice" AutoPostBack = true /> <br />
<asp:RadioButton id="option3" runat="server" Text="хоббитов"
OnCheckedChanged="option1_CheckedChanged" AutoPostBack = true
GroupName="Choice"/><br />
<br /><br />
</form>
<asp:Label id="Message" runat="server" />
</body>
</html>
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 показывает выбранный элемент.
На форуме RSDN каждый участник может открыть голосование по интересующему его вопросу. Вот одно из этих голосований:
<%@ Page Language="C#" %>
<script runat="server">
void Page_Load()
{
if (Page.IsPostBack)
{
if( radVoting.SelectedItem==null)
Message.Text = "Надо выбрать вариант";
else
{
Message.Text = "Спасибо за участие. Вы выбрали: " +
radVoting.SelectedItem.Value;
voting.Visible=false;
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title> Что вы думаете о сайте intuit.ru? </title>
</head>
<body>
<br /><br /> <asp:label runat="server" ID="Question" Font-
Bold="True" Font-Size="Large" ForeColor="#0000C0">Что вы думаете
об онлайн-университете intuit.ru? </asp:label>
<br /><br />
<form runat="server" id="voting">
<asp:RadioButtonList id="radVoting" runat="server" >
<asp:ListItem value="Хороший сайт, учился там" />
<asp:ListItem value="Есть интересные курсы, причем в открытом
доступе" />
<asp:ListItem value="Не бывал(а), пойду посмотрю" />
<asp:ListItem value="Посмотрел(а), записался на курсы" />
</asp:RadioButtonList>
<input type="Submit" value="Проголосовать!" >
<br /><br />
</form>
<asp:Label id="Message" runat="server" />
</body>
</html>