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原型继承之基础机制分析
Aug 26 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
jquery实现商品拖动选择效果代码(自写)
May 28 Javascript
用js判断是否为360浏览器的实现代码
Jan 15 Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
Aug 29 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
Oct 27 Javascript
vue如何从接口请求数据
Jun 22 Javascript
深入理解ES7的async/await的用法
Sep 09 Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 Javascript
深入了解JavaScript 的 WebAssembly
Jun 15 Javascript
微信小程序实现简单文字跑马灯
May 26 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中显示格式化的用户输入
2006/10/09 PHP
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
PHP连接MySQL的2种方法小结以及防止乱码
2014/03/11 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
详谈js对url进行编码和解码(三种方式的区别)
2017/08/16 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
纯 JS 实现放大缩小拖拽功能(完整代码)
2019/11/25 Javascript
[06:43]2018DOTA2国际邀请赛寻真——VGJ.Thunder
2018/08/11 DOTA
解密Python中的描述符(descriptor)
2015/06/03 Python
Python面向对象特殊成员
2017/04/24 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
2018/10/26 Python
Python制作exe文件简单流程
2019/01/24 Python
opencv转换颜色空间更改图片背景
2019/08/20 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
pytorch .detach() .detach_() 和 .data用于切断反向传播的实现
2019/12/27 Python
python如何实现不可变字典inmutabledict
2020/01/08 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
护理专科毕业推荐信
2013/11/10 职场文书
学习方法演讲稿
2014/05/10 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
南湾猴岛导游词
2015/02/09 职场文书
2016年党校科级干部培训班学习心得体会
2016/01/06 职场文书
入团申请书格式
2019/06/20 职场文书
k-means & DBSCAN 总结
2021/04/27 Python