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 相关文章推荐
JQuery打造PHP的AJAX表单提交实例
Nov 03 Javascript
json对象转字符串如何实现
Dec 02 Javascript
javascript动态创建及删除元素的方法
Dec 22 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
概述BootStrap中role=&quot;form&quot;及role作用角色
Dec 08 Javascript
ES6中module模块化开发实例浅析
Apr 06 Javascript
vue+axios实现登录拦截的实例代码
May 22 Javascript
默认浏览器设置及vue自动打开页面的方法
Sep 21 Javascript
npm 常用命令详解(小结)
Jan 17 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
Sep 25 Javascript
Vue设置长时间未操作登录自动到期返回登录页
Jan 22 Javascript
Vue执行方法,方法获取data值,设置data值,方法传值操作
Aug 05 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
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
织梦sitemap地图实时推送给百度的教程
2015/08/03 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
2013/01/23 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
webpack3之loader全解析
2017/10/26 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JavaScript 浏览器对象模型BOM原理与常见用法实例分析
2019/12/16 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
python实现验证码识别功能
2018/06/07 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
大学军训感言
2014/01/10 职场文书
公司前台辞职报告
2014/01/19 职场文书
初一新生军训方案
2014/05/22 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
求职自荐信怎么写
2015/03/04 职场文书
项目验收申请报告
2015/05/15 职场文书
小鞋子观后感
2015/06/05 职场文书
全民创业工作总结
2015/08/13 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
PHP控制循环操作的时间
2021/04/01 PHP
Python基础之pandas数据合并
2021/04/27 Python
SQL SERVER中的流程控制语句
2022/05/25 SQL Server