“RadioButtonList”控件表示一个封装了一组单选按钮控件的列表控件。可以使用两种类型的 ASP.NET 控件将单选按钮添加到网页上:各个“RadioButton”控件或一个“RadioButtonList”控件。这两类控件都允许用户从一小组互相排斥的预定义选项中进行选择。使用这些控件,可定义任意数目的带标签的单选按钮,并将它们水平或垂直排列。

命名空间:System.Web.UI.WebControl

程序集:System.Web(在 system.web.dll 中)

[ValidationPropertyAttribute("SelectedItem")] 
public class RadioButtonList : ListControl, IRepeatInfoUser, INamingContainer, IPostBackDataHandler
RadioButtonList 控件为网页开发人员提供了一组单选按钮,这些按钮可以通过数据绑定动态生成。该控件包含一个 Items 集合,集合中的成员与列表中的各项相对应。若要确定选择了哪一项,请测试列表的 SelectedItem 属性。

可以用 RepeatLayout 和 RepeatDirection 属性指定如何呈现列表。如果将 RepeatLayout 设置为 RepeatLayout.Table(默认设置),列表将呈现在表中。如果设置为 RepeatLayout.Flow,列表将不以表格形式呈现。默认情况下,RepeatDirection 设置为 RepeatDirection.Vertical。将该属性设置为 RepeatDirection.Horizontal 时,列表将水平呈现。

RadioButtonList用法

<div class="rblStyle">
                <asp:RadioButtonList ID="rblChangQHT" runat="server" RepeatDirection="Horizontal">
                <asp:ListItem Text="是" Value="1"></asp:ListItem> 
                <asp:ListItem Text="否" Value="0"></asp:ListItem>
                </asp:RadioButtonList></div>

1.RadioButtonList 校验

var rb_ChangQHT = document.getElementById("rblChangQHT");
            var ShiF = rb_ChangQHT.getElementsByTagName("INPUT");
            var result = false;
            for (var i = 0; i < ShiF.length; i++) {
                if (ShiF[i].checked) {
                    result = true;
                    break;
                }
            }
            if (!result) {
                alert("是否接受");
                return false;
            }

2.RadioButtonList样式调整

.rblStyle{width:100%;height:auto;}
.rblStyle input{border-style:none;}

3.onselectedindexchanged的事件

像下拉控件dropdownlist控件一样,它也有onselectedindexchanged事件,当选项改变后进行触发

注意点是:控件中的AutoPostBack属性一定设为"True",这样服务器端才知道你的选项改变了,并触发相应事件

4.为ListItem添加提示

RadioButtonList1.Items[0].Attributes.Add("title", "提示内容");
5.绑定数据源

string sql = "select * from province";
            DataTable dt = SQLHelper.ExecuteDataTable(sql);
            this.RadioButtonList1.DataSource = dt;
            this.RadioButtonList1.DataTextField = "Provinces";
            this.RadioButtonList1.DataValueField = "PId";
            this.RadioButtonList1.DataBind();
6.改变选中项的前景色

<asp:RadioButtonList ID="rblIsLock" runat="server" AutoPostBack="true" OnSelectedIndexChanged="rblIsLock_SelectedIndexChanged"  RepeatDirection="Horizontal" RepeatLayout="Flow">

<asp:ListItem Selected="True" Value="0">启用 </asp:ListItem>

<asp:ListItem Value="1">禁用 </asp:ListItem>

</asp:RadioButtonList>

<label>*禁用的用户将无法登录</label>

后台:

protected void rblIsLock_SelectedIndexChanged(object sender, EventArgs e)

{

var rbl = sender as RadioButtonList;

HighliehgSelectedItem(rbl);

}

private void HighliehgSelectedItem(RadioButtonList rbl)

{

foreach (ListItem li in rbl.Items)

{

if (li.Selected)

{

li.Attributes.Add("style", "color: red;");

}

}

}

7.后台动态增加RadioButtonList

RadioButtonList rbl = new RadioButtonList();
                    rbl.ID = "rbl" + (i + 1).ToString();
                    rbl.BorderStyle = BorderStyle.None;
                    rbl.RepeatLayout = RepeatLayout.Flow;
                    rbl.RepeatDirection = RepeatDirection.Horizontal;
                    rbl.TextAlign = TextAlign.Right;
                    rbl.CellSpacing = 6;
                    rbl.Attributes.Add("onclick", "CheckRbl('ctl00_ctl00_ctl00_ContentPlaceHolder1_cphBody_cphLower_" + rbl.ID + "')");
                    rbl.DataSource = dtRating.DefaultView;
                    rbl.DataTextField = "LevelID";
                    rbl.DataValueField = "LevelID";
                    rbl.DataBind();
                    tc.Controls.Add(rbl); //tc是TableRow的一个单元格TableCell

for (int k = 0; k < rbl.Items.Count; k++)
                    {
                        rbl.Items[k].Attributes.Add("title", dtRating.Rows[k][1].ToString());
                        rbl.Items[k].Attributes.Add("style", "margin-left:10px;");
                    }

8.前台改变选中项的背景色

window.onload = function () {
            var arr = document.getElementsByTagName("INPUT");
            for (var i = 0; i < arr.length; i++) {
                if (arr[i].checked) {
                    if (arr[i].type == "radio") {
                        arr[i].style.backgroundColor = "red";
                    }
                    else {
                        arr[i].style.backgroundColor = "";
                    }
                }
                else {
                    arr[i].style.backgroundColor = "";
                }
            }
        }

ASP.NET控件之RadioButtonList相关推荐

  1. 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图

    Nikhil Kothari Microsoft Corporation 2000年8月 简介 Microsoft® Visual Studio.NET 的下一发行版包括 DataGrid Web 控 ...

  2. 一起谈.NET技术,asp.net控件开发基础(18)

    本篇继续上篇的讨论,可能大家已经在使用asp.net2.0了,DataSource属性不再使用,而是跟数据源控件搭配使用.现在讨论的绑定技术都是基于1.1版本,先熟悉一下,本质上是一样的,这样一步步的 ...

  3. ASP:Literal控件用法

    ASP:Literal控件用法 刚开始学.NET的朋友可能不清楚Literal和Label到底有什么区别,其实它们也只有一个区别,就是在转换成客户端Html代码后,Label就成了<span&g ...

  4. 一起谈.NET技术,asp.net控件开发基础(20)

    上面我们讨论了数据绑定控件的做法,但都未涉及到asp.net2.0中数据源控件的用法,让用惯了数据源控件的人可能感觉不适应.这次我们就开始讨论在asp.net2.0中,我们该如何重新定义数据绑定控件. ...

  5. Silverlight 3.0 不再包含 asp:silverlight 控件

    从 Silverlight 2 升级到 Silverlight 3 可能会报如下错误,程序中可能引用了 asp:silverlight 控件: Could not load file or assem ...

  6. asp.net控件本质

    .net控件本质 在我的一个项目中需要对于控件进行区分总结,我在网上找了找加上自己的实际测试总结如下:(如果有什么不正确的请即使指出,一起讨论,大家共同进步)         asp.net之所以现在 ...

  7. Asp.net控件之异同:HTML控件与Web服务器控件

    Asp.net之所以现在开发方便和快捷,关键是它有一组强大的控件库,包括web服务器控件,web用户控件,web自定义控件,html服务器控件和html控件等.这里我主要说说html控件.html服务 ...

  8. asp.net控件库FineUI使用入门图解

    FineUI是一个基于 jQuery / ExtJS 的 ASP.NET 控件库,其宣传语是: 创建 No JavaScript,No CSS,No UpdatePanel,No ViewState, ...

  9. 【转】Asp.net控件开发学习笔记整理篇 - WebControl基类

    最近一直在做MVC项目,对于WEBFORM 好像快忘记了.周末无聊,顺带看看他人的笔记.再次温习下. 复习大纲: 导航.页面生命周期及其它导论 一.服务器控件生命周期 二.控件开发基础 三.Asp.n ...

最新文章

  1. mysql低权限用户getshell_GetShell的姿势总结
  2. 深度有趣 | 26 Seq2Seq机器翻译
  3. json数据格式 与 for in
  4. EShop网上商城项目(一)
  5. 苹果是c语言安卓是什么语言,主流app是用什么语言开发的苹果和安卓的主流开...
  6. java 反射创建对象并赋值_[原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)...
  7. 【安全】导入本地linux用户到LDAP中
  8. python numpy loadtxt
  9. 风雨秋招路-CV太难了-记得复盘
  10. Ubuntu 安装 gcc-4.9.3-64-gnu
  11. 【图论】Graph Fourier Transform
  12. SRE问题排查四步法——以建立HTTPS连接失败问题排查为例
  13. 在线算法 离线算法
  14. 8b/10b编码技术系列(二):Disparity、RD、8b/10b编码
  15. arcgis pro发布矢量切片服务及利用arcgis api for javascript进行调用
  16. 逻辑强化(09)加强支持 知识练习
  17. 区块链系统开发实现原理,区块链为什么叫区块链?
  18. GeoServer安装VectorTile插件
  19. realme真我V15国潮锦鲤手机:携《国家宝藏》IP筑开年之作
  20. 微信开发者模式php,微信开发之开发者模式

热门文章

  1. 苹果usb设置在哪里_如何解决苹果Mac无线鼠标、键盘或触控板无法被搭配识别?...
  2. 基于 Alexnet 的服装图像模式识别系统的设计与实现
  3. PCI PIN Security Requirement 附录A 翻译
  4. 传感器的标定与校准-传感器的选用原则- 斯巴拓
  5. 查询选修了全部课程的学生姓名-sql-oracle
  6. 三个装修 家具 装饰公司网站模板 大气美观 简单明了的静态模板
  7. keychron凭什么高效学习快速码字
  8. 计算机的CPU型号 内存容量和硬盘容量,什么是LGA,PGA,BGA类型的CPU封装?CPU主频/内存容量/硬盘容量怎么看?...
  9. C#日期格式的转换方法
  10. 谈20年美赛与我的建模完整经历