js操作CheckBoxList实现全选/反选(在客服端完成)


Posted in Javascript onFebruary 02, 2013

对于CheckBoxList控件来说,一方面要实现大量数据在服务器端的绑定工作,另一方面往往要求实现全选、反选等功能。虽然可以在服务器端完成这方面的工作,但这样一个简单的工作似乎更应该在客户端完成。

具体方法
在页面中放入一个CheckBoxList控件,并添加几项,用来分析其产生的HTML代码,这样在使用js进行
动态控制时,将会非常清晰其测试代码如下所示:

<asp:CheckBoxListID="CheckBoxList1"runat="server"CellPadding="3"CellSpacing="3" 
RepeatColumns="3"> 
<asp:ListItem>1232</asp:ListItem> 
<asp:ListItem>254</asp:ListItem> 
<asp:ListItemValue="5643">5643</asp:ListItem> 
<asp:ListItem>789</asp:ListItem> 
<asp:ListItem>654</asp:ListItem> 
<asp:ListItem>564</asp:ListItem> 
<asp:ListItem>8564</asp:ListItem> 
<asp:ListItem>8564</asp:ListItem> 
<asp:ListItem>5452</asp:ListItem> 
<asp:ListItem>5641</asp:ListItem> 
</asp:CheckBoxList>

在浏览器中查看,并对Html进行分析:以下是DropDownList控件生成的HTML代码。
<tableid="CheckBoxList1"cellspacing="3"cellpadding="3"border="0"> 
<tr> 
<td><inputid="CheckBoxList1_0"type="checkbox"name="CheckBoxList1$0"/><labelfor="CheckBoxList1_0">1232</label> 
</td> 
<td><inputid="CheckBoxList1_4"type="checkbox"name="CheckBoxList1$4"/><labelfor="CheckBoxList1_4">654</label> 
</td> 
....... 
</table>

在这里,节选了部分代码,其中蓝色部分是我们关心的。在HTML中CheckBoxList生成了
许多input(type为checkbox),并且其ID为“CheckBoxList1_i”(i为数字)。这样我们只
需要知道一共有几项就可以轻松的实现js对它的控制。
这些input都包含在一个id为CheckBoxList1的table中,因此可以通过:
document.getElementById("CheckBoxList1").getElementsByTagName("input").length

这一方法获取CheckBoxList一共有多少项,剩下的工作其实就很简单了,通过js更改每一个
checkbox的状态即可。先添加三个button,用来实现全选、反选及清除控制,如下所示:
<inputtype="button"onclick="checkAll()"value="checkAll"/> 
<inputtype="button"onclick="ReverseAll()"value="ReverseAll"id="Button1"/> 
<inputtype="button"onclick="deleteAll()"value="deleteAll"/>

添加全选、反选及清除函数如下:
functioncheckAll(){ 
//alert(document.getElementById("CheckBoxList1").getElementsByTagName("input").length); 
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++) 
{ 
document.getElementById("CheckBoxList1_"+i).checked=true; 
} 
} 
functiondeleteAll(){ 
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++) 
{ 
document.getElementById("CheckBoxList1_"+i).checked=false; 
} 
} 
functionReverseAll(){ 
for(vari=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++) 
{ 
varobjCheck=document.getElementById("CheckBoxList1_"+i); 
if(objCheck.checked) 
objCheck.checked=false; 
else 
objCheck.checked=true; 
} 
}

OK,现在通过IE测试,绑定工作可以在后台,全选等辅助功能可以自由发挥了!
Javascript 相关文章推荐
javascript显示隐藏层比较不错的方法分析
Sep 30 Javascript
深入理解JavaScript系列(14) 作用域链介绍(Scope Chain)
Apr 12 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
May 24 Javascript
JQuery记住用户名密码实现下次自动登录功能
Apr 27 Javascript
javascript实现简单的页面右下角提示信息框
Jul 31 Javascript
jQuery 判断图片是否加载完成方法汇总
Aug 10 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
Oct 29 Javascript
jquery读写cookie操作实例分析
Dec 24 Javascript
JavaScript实现广告弹窗效果
Aug 09 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
Jul 26 Javascript
JavaScript布尔运算符原理使用解析
May 06 Javascript
自定义右键属性覆盖浏览器默认右键行为实现代码
Feb 02 #Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 #Javascript
js解析xml字符串和xml文档实现原理及代码(针对ie与火狐)
Feb 02 #Javascript
js中eval()函数和trim()去掉字符串左右空格应用
Feb 02 #Javascript
jquery的冒泡事件的阻止与允许(三种实现方法)
Feb 01 #Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
Feb 01 #Javascript
js自定义事件及事件交互原理概述(二)
Feb 01 #Javascript
You might like
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
JS简单生成两个数字之间随机数的方法
2016/08/03 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
javascrit中undefined和null的区别详解
2019/04/07 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
[47:39]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 LGD vs OPTIC
2018/03/31 DOTA
python为tornado添加recaptcha验证码功能
2014/02/26 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
遗传算法python版
2018/03/19 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
Django中FilePathField字段的用法
2020/05/21 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
The Hut德国站点:时装、家居用品、美容等
2016/09/23 全球购物
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
荷兰浴室和卫浴网上商店:Badkamerxxl.nl
2020/10/06 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
建筑自我鉴定
2013/10/19 职场文书
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
餐饮业的创业计划书范文
2013/12/26 职场文书
物理专业大学生职业生涯规划书
2014/02/07 职场文书
环保建议书500字
2014/05/14 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
正规借条模板
2015/05/26 职场文书
2015大学迎新标语
2015/07/16 职场文书
商场广播稿范文
2015/08/19 职场文书
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript