• 限制CheckBoxList控件只能单选


    转摘:http://www.cnblogs.com/insus/archive/2013/01/22/2872203.html

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

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

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

     1 TerrestrialBranch.cs
     2 
     3 using System;
     4 using System.Collections.Generic;
     5 using System.Linq;
     6 using System.Web;
     7 
     8 /// <summary>
     9 /// Summary description for TerrestrialBranch
    10 /// </summary>
    11 namespace Insus.NET
    12 {
    13     public class TerrestrialBranch
    14     {
    15         private int _ID;
    16         private string _Name;
    17 
    18         public int ID
    19         { 
    20             get{return _ID;}
    21             set { _ID = value; }
    22         }
    23 
    24         public string Name
    25         {
    26             get { return _Name; }
    27             set { _Name = value; }
    28         }
    29         
    30         
    31         public TerrestrialBranch()
    32         {
    33             //
    34             // TODO: Add constructor logic here
    35             //
    36         }
    37 
    38         public TerrestrialBranch(int id, string name)
    39         {
    40             this.ID = id;
    41             this._Name = name;
    42         }
    43     }
    44 }

    用数据填充这个对象,并用泛型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;
        }
    View Code

    在.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;
                                }
                            }
                        }
                    }
                }
            }
  • 相关阅读:
    feign的callback设定后,项目启动错误
    spring boot工程打成JAR包到服务器上运行
    jar包的启动和停止脚本
    tomcat启动时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    maven的多环境配置
    oracle 按照时间间隔进行分组
    Oracle执行计划
    ajax传JSON时设置的contenttype导致JAVA中request.getParameter("")怎么也接收不到数据
    [转]动态代理
    [转]一文读懂《梁宁·产品思维30讲》最精华内容(含全套PPT)
  • 原文地址:https://www.cnblogs.com/NKing/p/4633115.html
Copyright © 2020-2023  润新知