ASP.NET DEMO 12 : CheckBoxList 实现单选

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

主要代码

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

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

None.gif function  CheckBoxList_Click(sender) 
ExpandedBlockStart.gifContractedBlock.gif    
dot.gif {
InBlock.gif        
var container = sender.parentNode;        
ExpandedSubBlockStart.gifContractedSubBlock.gif        
if(container.tagName.toUpperCase() == "TD"dot.gif// 服务器控件设置呈现为 table 布局(默认设置),否则使用流布局
InBlock.gif
            container = container.parentNode.parentNode; // 层次: <table><tr><td><input />
ExpandedSubBlockEnd.gif
        }
        
InBlock.gif        
var chkList = container.getElementsByTagName("input");
InBlock.gif        
var senderState = sender.checked;
ExpandedSubBlockStart.gifContractedSubBlock.gif        
for(var i=0; i<chkList.length;i++dot.gif{
InBlock.gif            chkList[i].checked 
= false;
ExpandedSubBlockEnd.gif        }
     
InBlock.gif        sender.checked 
= senderState;          
ExpandedBlockEnd.gif    }

None.gif < h3 > 单选效果的 CheckBoxList </ h3 >
None.gif    
< div  style ="float:left" >
None.gif    
< h4 > 静态项 </ h4 >
None.gif        
< asp:CheckBoxList  ID ="CheckBoxList1"  BorderWidth ="1"  runat ="server"  RepeatLayout ="Flow" >
None.gif        
< asp:ListItem  onclick ="CheckBoxList_Click(this)"  Value ="Item1" > Item1 </ asp:ListItem >
None.gif        
< asp:ListItem  onclick ="CheckBoxList_Click(this)"  Value ="Item2" > Item2 </ asp:ListItem >
None.gif        
< asp:ListItem  onclick ="CheckBoxList_Click(this)"  Value ="Item3" > Item3 </ asp:ListItem >
None.gif        
< asp:ListItem  onclick ="CheckBoxList_Click(this)"  Value ="Item4" > Item4 </ asp:ListItem >
None.gif        
< asp:ListItem  onclick ="CheckBoxList_Click(this)"  Value ="Item5" > Item5 </ asp:ListItem >
None.gif        
</ asp:CheckBoxList >
None.gif    
</ div >
None.gif    
< div  style ="float:left;padding-left:100px" >
None.gif    
< h4 > 绑定项 </ h4 >
None.gif        
< asp:CheckBoxList  ID ="CheckBoxList2"  BorderWidth ="1"  runat ="server"  DataTextField ="Value"  DataValueField ="Key"  OnDataBound ="CheckBoxList2_DataBound" >         
None.gif        
</ asp:CheckBoxList >
None.gif    
</ div >

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

页面效果



下载

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值