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 学习笔记 错误处理
Jul 30 Javascript
js前台判断开始时间是否小于结束时间
Feb 23 Javascript
js 用CreateElement动态创建标签示例
Nov 20 Javascript
从零学jquery之如何使用回调函数
May 16 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
Sep 02 Javascript
javascript定义变量时加var与不加var的区别
Dec 22 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
jQuery布局组件EasyUI Layout使用方法详解
Feb 28 Javascript
微信小程序 五星评价功能的实现
Mar 09 Javascript
js实现随机数字字母验证码
Jun 19 Javascript
js图片上传的封装代码
Aug 01 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
Dec 22 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
DC动画很好看?新作烂得令人发指,名叫《红色之子》
2020/04/09 欧美动漫
真正的ZIP文件操作类(php)
2007/07/21 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
JScript中的&quot;this&quot;关键字使用方式补充材料
2007/03/08 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
AngularJS 入门教程之HTML DOM实例详解
2016/07/28 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
详解获取jq ul第一个li定位的四种解决方案
2016/11/23 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
简单了解OpenCV是个什么东西
2017/11/10 Python
美国高端寝具品牌:Coyuchi
2017/02/08 全球购物
护理专业本科生自荐信
2013/10/01 职场文书
通信工程毕业生自荐信
2013/11/01 职场文书
《两只鸟蛋》教学反思
2014/02/10 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
群众路线教育实践活动的心得体会
2014/09/03 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
如何拟写通知正文?
2019/04/02 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers