一看标题估计大家都开始怀疑了:单选?为什么不直接使用 RadioButtonList ?
是的。你是对的。然而,实际应用中需求千变万化,谁让我们的客户够 BT 呢?

主要代码

只有一个通用的 CheckBoxList_Click 函数,
需要注意的是 CheckBoxList 可以呈现为 table 布局,也可以呈现为流布局(使用 span 做外部容器)

我的习惯是,脚本代码中,尽量不直接引用 html id,因为对于服务器控件对应的是 ClientID,而ClientID与控件层次关联的,不利于代码移植复用,因此尽可能选择直接传递对象,通过 DOM 获取相关的父控件和子控件。

function CheckBoxList_Click(sender) 
    {
        var container = sender.parentNode;        
        if(container.tagName.toUpperCase() == "TD") { // 服务器控件设置呈现为 table 布局(默认设置),否则使用流布局
            container = container.parentNode.parentNode; // 层次: <table><tr><td><input />
        }        
        var chkList = container.getElementsByTagName("input");
        var senderState = sender.checked;
        for(var i=0; i<chkList.length;i++) {
            chkList[i].checked = false;
        }     
        sender.checked = senderState;          
    }
<h3>单选效果的 CheckBoxList</h3>
    <div style="float:left">
    <h4>静态项</h4>
        <asp:CheckBoxList ID="CheckBoxList1" BorderWidth="1" runat="server" RepeatLayout="Flow">
        <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item1">Item1</asp:ListItem>
        <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item2">Item2</asp:ListItem>
        <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item3">Item3</asp:ListItem>
        <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item4">Item4</asp:ListItem>
        <asp:ListItem onclick="CheckBoxList_Click(this)" Value="Item5">Item5</asp:ListItem>
        </asp:CheckBoxList>
    </div>
    <div style="float:left;padding-left:100px">
    <h4>绑定项</h4>
        <asp:CheckBoxList ID="CheckBoxList2" BorderWidth="1" runat="server" DataTextField="Value" DataValueField="Key" OnDataBound="CheckBoxList2_DataBound">        
        </asp:CheckBoxList>
    </div>

兼容性
IE 6 SP6,  FF 2.0,  Opera 9.2 测试通过

页面效果

下载

转载于:https://www.cnblogs.com/Jinglecat/archive/2007/07/18/823201.html

ASP.NET DEMO 12 : CheckBoxList 实现单选相关推荐

  1. ASP.NET DEMO 18: 如何编程动态创建 Menu

    ASP.NET DEMO 15: 如何编程动态创建 TreeView 的姊妹篇: <%@ Page Language="C#" %> <%@ Import Nam ...

  2. ASP.NET页面的CheckBoxList组件

    CheckBox选择组件是一个程序中都经常的组件.在程序设计中使用到该组件,一般都不会只使用到一个,往往是以多个此类组件的形式出现的.在ASP.NET页面中如果要使用到多个CheckBox组件,除了添 ...

  3. ASP.NET DEMO 14: 如何在 GridView/DataGrid 模板列中使用自动回发的 CheckBox/DropDownList

    有时候希望在 GridView 模板中使用自动回发的 CheckBox (autopostback=true) ,但是 CheckBox 没有 CommandName 属性,因此也就无法在 GridV ...

  4. ASP.NET——基础 12、Request

    1.路径标识符. http标准定为: "/"代表网站根目录. "../"代表上级目录. "./"代表当前目录. Asp.net专用,所以要用 ...

  5. Asp.NET Demo

    最新一个asp.net演示,您可以观看到程序讲解,数据库方面的表创建,存储过程等.在asp.net程序方面,您可以看到各种数据传入的处理,以及Gridview主键值的取得并传至另外页面. 压缩文档中包 ...

  6. 随笔目录【2016年12月1日整理中~】

    .Net 记录(9) 不用写Windows服务实现定时器功能(FluentScheduler )自定义log日志iis 7.5应用程序池自动停止集合已修改;可能无法执行枚举操作.ADO.NET – 3 ...

  7. asp行驶证识别,驾驶证识别api代码demo示例,还可以识别车牌

    今早一个朋友联系我,问我有没有用asp写过行驶证识别或是驾驶证识别,我说这不是asp能办到的,需要借助第三方平台才可以实现,例如百度的api识别接口,他云百度上看了一下又联系我说没有asp的开发文档, ...

  8. [知识库分享系列] 二、.NET(ASP.NET)

    最近时间又有了新的想法,当我用新的眼光在整理一些很老的知识库时,发现很多东西都已经过时,或者是很基础很零碎的知识点.如果分享出去大家不看倒好,更担心的是会误人子弟,但为了保证此系列的完整,还是选择分享 ...

  9. ASP.NET中EVAL用法大全

    <%# Bind("Subject") %> //绑定字段 <%# Container.DataItemIndex + 1%> //实现自动编号 <% ...

最新文章

  1. xcode 8 重新支持插件
  2. 赛可达推病毒攻击检测和情报分享服务
  3. 我自学python的路-我的python后端学习路线
  4. javascript中变量的判断
  5. 观光旅游(Floyd)
  6. dede织梦背景经常使用标签
  7. Lindström–Gessel–Viennot lemma
  8. 索尼笔记本如何进Bios设置U盘启动
  9. 日志分类存放_博特智能|文本智能聚类——千万日志一览无余
  10. mysql 5.7 mts_mysql5.7 中启用MTS后error log中大量Note日志分析
  11. 树的基本定义表示方法
  12. 用Java设计一个通讯录,保存读者的信息。
  13. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(五)——无源与有源电流镜
  14. C#,汉字转拼音的算法与源代码
  15. Vue2+Vant2:一个可定制图标的简易扫雷小游戏
  16. 【React自制全家桶】九、Redux入手
  17. #1829 : Tomb Raider(哈希)
  18. 日本风俗业数据_神奇宝贝如何融入日本民俗
  19. 干货 | 区块链项目估值的逻辑和误区
  20. 在windows下python3使用multiprocessing.Pool时出现的问题

热门文章

  1. 业界 | 李彦宏:中国人愿意用隐私交换便利性;无人车事故是“人咬狗”新闻...
  2. 废弃电器电子产品回收:需要的不仅是补贴 !
  3. (转)基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作...
  4. php根据IP地址跳转对应的城市,淘宝REST api调用地址直接使用
  5. IOS 实现滚动文字
  6. SQL Server中的角色(服务器级别和数据库级别角色)
  7. CCNA1 - Final Exam Answers (04/18/2008 10:30)
  8. 如何创建企业微信应用
  9. PHP下的浮点运算不准的解决办法
  10. SAP S/4HANA销售订单创建时,会自动触发生产订单的创建