文章标题

“RadioButtonList”控件表示一个封装了一组单选按钮控件的列表控件。 

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

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

可以用 RepeatLayout 和 RepeatDirection 属性指定如何呈现列表。

如果将 RepeatLayout 设置为 RepeatLayout.Table(默认设置),列表将呈现在表中。
如果将 RepeatLayout 设置为 RepeatLayout.Flow,列表将不以表格形式呈现。

如果将 RepeatDirection 设置为 RepeatDirection.Vertical(默认设置),列表将垂直呈现。
如果将 RepeatDirection 设置为 RepeatDirection.Horizontal 时,列表将水平呈现。 

RadioButton用法:

<asp:RadioButton ID="RadioButton1" runat="server" Text="是" GroupName="isFlag" />
<asp:RadioButton ID="RadioButton2" runat="server" Text="否" GroupName="isFlag" />

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 = "";
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值