RadioButton 和 RadioButtonList Web 服务器控件介绍
可以使用两类 Web 服务器控件向 Web 窗体页添加单选按钮:单个 RadioButton 控件或 RadioButtonList 控件。这两种控件都允许用户从一小组互斥的预定义选项中进行选择。这些控件允许您定义任意数目带标签的单选按钮,并将它们水平或垂直排列。
**注意 **您还可以使用 HtmlInputRadioButton 服务器控件将单选按钮添加到 Web 窗体页。有关 Web 控件和 HTML 控件之间的差异的详细信息,请参见 ASP.NET 服务器控件简介。
**提示 **如果想向用户提供较长的选项列表,或者提供长度在运行时可能会变化的选项列表,请使用 ListBox 或 DropDownList Web 服务器控件。
您可以向页面添加单个 RadioButton 控件,并单独使用这些控件。通常是将两个或多个单独的按钮组合在一起。请参见向 Web 窗体页添加单个 RadioButton 控件。
与之相反,RadioButtonList 控件是单个控件,可作为单选按钮列表项集合的父控件。它派生自基 ListControl 类,因此工作方式与 ListBox、DropDownList 和 CheckBoxList Web 服务器控件很相似。因此,使用 RadioButtonList 控件的很多过程与使用其他列表 Web 服务器控件的过程相同。
每类控件都有各自的优点。单个 RadioButton 控件使您可以更好地控制单选按钮组的布局。例如,您可以在各单选按钮之间加入文本(即非单选按钮文本)。
RadioButtonList 控件不允许您在按钮之间插入文本,但如果想将按钮绑定到数据源,使用这类控件要方便得多。在编写代码以检查选定的按钮方面,它也稍微简单一些。
单选按钮很少单独使用,而是进行分组以提供一组互斥的选项。在一个组内,每次只能选择一个单选按钮。您可以用下列方法创建分组的单选按钮:
- 先向页面添加单个的 RadioButton Web 服务器控件,然后将所有控件手动分配到一个组中。这种情况下,该组可为任意名称;具有相同组名的所有单选按钮视为单个组的组成部分。
- 向页面添加 RadioButtonList Web 服务器控件。该控件中的列表项将自动进行分组。
在单个 RadioButton 控件和 RadioButtonList 控件之间,事件的工作方式略有不同。
单个 RadioButton 控件在用户单击控件时引发 CheckedChanged 事件。默认情况下,这一事件并不导致向服务器发送页面,但通过将 AutoPostBack 属性设置为 true,您可以使控件强制立即发送。有关直接响应此事件的详细信息,请参见响应 RadioButton 组中的用户选定内容。
注意 选中 RadioButton 控件时,它可以发送到服务器。要实现这一点,浏览器必须支持 ECMAScript(JScript、JavaScript),并且用户的浏览器上要启用脚本撰写。
无论 RadioButton 控件是否向服务器发送页面,通常都没有必要为 CheckedChanged 事件创建事件处理程序。相反,更常见的做法是在窗体已被某个控件(比如 Button 控件)发送到服务器时测试所选定的按钮。有关详细信息,请参见设置和获取 RadioButton Web 服务器控件中的选定内容。
与之相反,RadioButtonList 控件在用户更改列表中选定的单选按钮时会引发 SelectedIndexChanged 事件。默认情况下,这一事件并不导致向服务器发送窗体,但您可以通过将 AutoPostBack 属性设置为 true 来指定这一选项。有关详细信息,请参见响应列表 Web 服务器控件中的更改。
注意 选中 RadioButton 控件时,它可以发送到服务器。要实现这一点,浏览器必须支持 ECMAScript(JScript、JavaScript),并且用户的浏览器上要启用脚本撰写。
与单个 RadioButton 控件一样,更常见的做法是在通过其他方式发送窗体之后测试 RadioButtonList 控件的状态。有关详细信息,请参见确定列表 Web 服务器控件中的选定内容。
与任何 Web 服务器控件一样,您可以将单个 RadioButton 控件绑定到数据源,还可以将 RadioButton 控件的任意属性绑定到数据源的任意字段。例如,可以用数据库中的信息设置控件的 Text 属性。
但由于单选按钮分组使用,因此将单个单选按钮绑定到数据源的方案并不常见。相反,更常见的做法是将 RadioButtonList 控件绑定到数据源。这种情况下,数据源会为数据源中的每条记录动态生成单选按钮(列表项)。
有关数据绑定 Web 服务器控件的常规信息,请参见在设计时数据绑定单值 Web 服务器控件。
请参见
向 Web 窗体页添加 Web 服务器控件 | Web 窗体的用户输入验证简介 | 通过编程设置 Web 服务器控件属性 | 使用样式自定义 ASP.NET 服务器控件的外观 | Web 窗体状态管理 | 指定是否将控件发送到服务器