RadioButton 和 RadioButtonList Web 服务器控件概述

更新:2007 年 11 月

RadioButton 控件和 RadioButtonList 控件使用户能够从一小组互相排斥的预定义选项中进行选择。

本主题包括:

  • 功能

  • 背景

  • 代码示例

  • 类参考

功能

可以使用 CheckBox 控件和 CheckBoxList 控件执行以下操作:

  • 当选中某个单选按钮时引起页回发。

  • 当用户选中某个单选按钮时捕获用户交互。

  • 将每个单选按钮绑定到数据库中的数据。

返回页首

背景

在向 ASP.NET 网页添加单选按钮时,可以使用两种 Web 服务器控件:单个 RadioButton 控件或 RadioButtonList 控件。这两种控件都使用户能够从一小组互相排斥的预定义选项中进行选择。您可以使用这些控件定义任意数目的带标签的单选按钮,并将它们水平或垂直排列。

您可以向页面添加单个 RadioButton 控件,并单独使用这些控件。通常是将两个或多个单独的按钮组合在一起。

或者,可以使用 RadioButtonList 控件,这是一个单一控件,可用作一组单选按钮列表项的父控件。该控件是从基 ListControl 类中派生的,因此,其工作方式与 ListBoxDropDownListBulletedListCheckBoxList Web 服务器控件非常相似。使用 RadioButtonList 控件的很多过程与使用其他列表 Web 服务器控件的过程相同。

这两类控件都有各自的优点。使用单个的 RadioButton 控件相对于使用 RadioButtonList 控件,可以更好地控制单选按钮组的布局。例如,您可以在各单选按钮之间包含非单选按钮文本。

如果您想要基于数据源中的数据创建一组单选按钮,则 RadioButtonList 控件是更好的选择。在编写代码以检查所选定的按钮方面,它也稍微简单一些。

b3se8ewc.alert_note(zh-cn,VS.90).gif说明:

您还可以使用 HtmlInputRadioButton 服务器控件来向 ASP.NET 网页添加单选按钮。有关更多信息,请参见 HtmlInputRadioButton 服务器控件声明性语法

如果要向用户提供较长的选项列表或在运行时长度可能会变的列表,请使用 ListBoxDropDownList Web 服务器控件。

对单选按钮分组

单选按钮很少单独使用,而是进行分组以提供一组互斥的选项。在一个组内,每次只能选择一个单选按钮。您可以用下列方法创建分组的单选按钮:

  • 先向页中添加单个的 RadioButton Web 服务器控件,然后将所有这些控件手动分配到一个组中。组名称可以是任意名称;具有相同组名称的所有单选按钮将视为单个组的组成部分。

  • 向页中添加一个 RadioButtonList Web 服务器控件。该控件中的列表项将自动进行分组。

RadioButton 和 RadioButtonList 事件

在单个 RadioButton 控件和 RadioButtonList 控件之间,事件的工作方式有所不同。

单个 RadioButton 控件

单个 RadioButton 控件在用户单击该控件时引发 CheckedChanged 事件。(此事件从 CheckBox 控件继承。)默认情况下,此事件不会导致向服务器发送页。但是,可以通过将 AutoPostBack 属性设置为 true,强制该控件立即执行回发。有关直接响应此事件的详细信息,请参见如何:响应 RadioButton Web 服务器控件组中的用户选择

b3se8ewc.alert_note(zh-cn,VS.90).gif说明:

自动回发功能要求浏览器支持 ECMAScript(Jscript 或 JavaScript),并且用户的浏览器上已启用脚本撰写。

可能需要为 CheckedChanged 事件创建一个事件处理程序。可以在作为页的一部分运行的任何代码中测试选中了哪个单选按钮。通常,只有在需要知道已更改某个单选按钮,而不只是读取当前选择时,才会为 CheckedChanged 事件创建一个事件处理程序。有关详细信息,请参见如何:设置和获取 RadioButton Web 服务器控件中的选择

RadioButtonList 控件

当用户更改列表中选中的单选按钮时,RadioButtonList 控件会引发 SelectedIndexChanged 事件。默认情况下,此事件并不导致向服务器发送页。但是,可以通过将 AutoPostBack 属性设置为 true,强制该控件立即执行回发。有关详细信息,请参见如何:响应列表 Web 服务器控件中的更改

b3se8ewc.alert_note(zh-cn,VS.90).gif说明:

自动回发功能要求浏览器支持 ECMAScript(Jscript 或 JavaScript),并且用户的浏览器上已启用脚本撰写。

与单个 RadioButton 控件一样,更常见的做法是,在通过其他方式发送页之后测试 RadioButtonList 控件的状态。有关详细信息,请参见如何:确定 List Web 服务器控件中的所选内容

RadioButton 控件 HTML 属性

RadioButton 控件向浏览器呈现时将分为两个部分:表示单选按钮的 input 元素和表示单选按钮标题的单独的 label 元素。这两个元素组合在一起放入到 span 元素中。

在对 RadioButton 控件应用样式或属性设置时,这些样式和属性将应用于外部的 span 元素。例如,如果对控件的 BackColor 属性进行设置,则所做的设置将应用于 span 元素。因此,它将同时影响内部的 input 和 label 元素。

有时,可能需要对单选按钮和标签进行单独设置。RadioButton 控件支持两个可以在运行时进行设置的属性。InputAttributes 属性可让您向 input 元素添加 HTML 属性,而 LabelAttributes 属性可让您向 label 元素添加 HTML 属性。设置的属性将按原样传递到浏览器。下面的示例演示了如何设置 input 元素的属性,使得在用户将鼠标指针指向单选按钮时,只有单选按钮更改颜色,而标签不更改颜色。

RadioButton1.InputAttributes.Add("onmouseover", _
    "this.style.backgroundColor = 'red'")
RadioButton1.InputAttributes.Add("onmouseout", _
    "this.style.backgroundColor = 'white'")
RadioButton1.InputAttributes.Add("onmouseover", 
    "this.style.backgroundColor = 'red'");
RadioButton1.InputAttributes.Add("onmouseout", 
    "this.style.backgroundColor = 'white'");

将数据绑定到控件

可以将单个 RadioButton 控件绑定到数据源,并且可以将 RadioButton 控件的任何属性绑定到数据源的任何字段。例如,可以基于数据库中的信息设置该控件的 Text 属性。

由于单选按钮是成组使用的,因此将单个单选按钮绑定到数据源的方案并不常见。相反,更常见的做法是将 RadioButtonList 控件绑定到数据源。这种情况下,数据源会为数据源中的每条记录动态生成单选按钮(列表项)。

返回页首

代码示例

如何:向 Web 窗体页添加 RadioButton Web 服务器控件

如何:向 Web 窗体页添加 RadioButtonList Web 服务器控件 (Visual Studio)

如何:设置和获取 RadioButton Web 服务器控件中的选择

如何:设置 RadioButtonList Web 服务器控件中的布局

如何:响应 RadioButton Web 服务器控件组中的用户选择

如何:在列表 Web 服务器控件中添加项 (Visual Studio)

如何:根据数据源来填充列表 Web 服务器控件 (Visual Studio)

如何:响应列表 Web 服务器控件中的更改

返回页首

类参考

下表列出了与 RadioButtonRadioButtonList 控件相关的类。

成员

说明

RadioButton

RadioButton 控件的主类。

RadioButtonList

RadioButtonList 控件的主类。

ListItem

表示 RadioButtonList 控件中的每一项的类。

Items

RadioButtonList 控件的列表中的各项相对应的项的集合。

返回页首

请参见

任务

如何:设置列表 Web 服务器控件中的选定内容 (Visual Studio)

如何:确定 List Web 服务器控件中的所选内容

参考

CheckBox 和 CheckBoxList Web 服务器控件概述