限制CheckBoxList控件只能单选

开发要求,原本对CheckBoxList控件是用来让用户多选的。但现在特殊要求,这个CheckBoxList控件限制只能单选。

哈哈,看看Insus.NET做出来的效果:

 

为了你也能实现出来,可以参考下面的方法,第一是准备好一个对象“地支”(Terrestrial Branch)

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

/// <summary>
/// Summary description for TerrestrialBranch
/// </summary>
namespace Insus.NET
{
    public class TerrestrialBranch
    {
        private int _ID;
        private string _Name;

        public int ID
        { 
            get{return _ID;}
            set { _ID = value; }
        }

        public string Name
        {
            get { return _Name; }
            set { _Name = value; }
        }
        
        
        public TerrestrialBranch()
        {
            //
            // TODO: Add constructor logic here
            //
        }

        public TerrestrialBranch(int id, string name)
        {
            this.ID = id;
            this._Name = name;
        }
    }
}
复制代码


用数据填充这个对象,并用泛型List<t>来存储这十二个对象:

复制代码
 private List<TerrestrialBranch> GetData()
    {
        List<TerrestrialBranch> tbs = new List<TerrestrialBranch>();
        tbs.Add(new TerrestrialBranch(1,""));
        tbs.Add(new TerrestrialBranch(2, ""));
        tbs.Add(new TerrestrialBranch(3, ""));
        tbs.Add(new TerrestrialBranch(4, ""));
        tbs.Add(new TerrestrialBranch(5, ""));
        tbs.Add(new TerrestrialBranch(6, ""));
        tbs.Add(new TerrestrialBranch(7, ""));
        tbs.Add(new TerrestrialBranch(8, ""));
        tbs.Add(new TerrestrialBranch(9, ""));
        tbs.Add(new TerrestrialBranch(10, ""));
        tbs.Add(new TerrestrialBranch(11, ""));
        tbs.Add(new TerrestrialBranch(12, ""));
        return tbs;
    }
复制代码


在.aspx页面拉一个CheckBoxList控件,设置两个属性RepeatColumns="6" RepeatDirection="Horizontal"

<asp:CheckBoxList ID="CheckBoxListTerrestrialBranch" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"></asp:CheckBoxList>


把刚才准备好的List<TerrestrialBranch>绑定给这个CheckBoxList控件:

复制代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.OleDb;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;

public partial class _Default : System.Web.UI.Page
{       
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
            Data_Binding();
    }

    private void Data_Binding()
    {
        this.CheckBoxListTerrestrialBranch.DataSource = GetData();
        this.CheckBoxListTerrestrialBranch.DataTextField = "Name";
        this.CheckBoxListTerrestrialBranch.DataValueField = "ID";
        this.CheckBoxListTerrestrialBranch.DataBind();
    }
}
复制代码


OK,一切准备就绪,可以写Javascript脚本,放在<head>之内。

复制代码
window.onload = function () {
            var cbl = document.getElementById('<%= CheckBoxListTerrestrialBranch.ClientID %>')
            var inputs = cbl.getElementsByTagName("input");

            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].type == "checkbox") {
                    inputs[i].onclick = function () {                                          
                        var cbs = inputs;
                        for (var i = 0; i < cbs.length; i++) {
                            if (cbs[i].type == "checkbox" && cbs[i] != this && this.checked) {
                                cbs[i].checked = false;
                            }
                        }
                    }
                }
            }
        }
复制代码


 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android 单选框是一种用户界面控件,主要用于让用户在一组选项中选择一个选项。它们通常被用于需要用户从多个选项中选择一个的场景。在Android开发中,单选框通常使用RadioButton控件实现。 与复选框(CheckBox)不同,单选框在选中后无法通过点击来取消选中。只能选择其中的一个选项。而复选框可以选择其中的多个选项,并且可以通过点击取消选中状态。 在Android中,可以使用RadioGroup来将一组RadioButton组合在一起,使得用户只能选择其中的一个选项。当用户选择其中一个选项时,会触发相应的操作或显示相关信息。而CheckBox则可以让用户选择其中的多个选项。每个选项被选中时,都可以显示相应的文字提示小窗口。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Android—复选框和单选框使用](https://blog.csdn.net/m0_71272694/article/details/125216602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Android—RadioButton(单选框)和CheckBox(复选框)](https://blog.csdn.net/turodog/article/details/52895548)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值