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获取网页中的js、css、Flash等文件
Dec 20 Javascript
ext for eclipse插件安装方法
Apr 27 Javascript
JavaScript实现x秒后自动跳转到一个页面
Jan 03 Javascript
js简单实现HTML标签Select联动带跳转
Oct 23 Javascript
javascript实现漂亮的拖动层,窗口拖拽特效
Apr 24 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
jQuery滚动加载图片实现原理
Dec 14 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
jquery对table做排序操作的实例演示
Aug 10 jQuery
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
JS深入学习之数组对象排序操作示例
May 01 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 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
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
PHP浮点比较大小的方法
2016/02/14 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
php 常用的系统函数
2017/02/07 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
laravel5.1框架基础之Blade模板继承简单使用方法分析
2019/09/05 PHP
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
Bootstrap select多选下拉框实现代码
2016/12/23 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
了解javascript中let和var及const关键字的区别
2019/05/24 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
js实现限定区域范围拖拉拽效果
2020/11/20 Javascript
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Python抽象和自定义类定义与用法示例
2018/08/23 Python
Python中的延迟绑定原理详解
2019/10/11 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
Python内置函数property()如何使用
2020/09/01 Python
python中二分查找法的实现方法
2020/12/06 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
纯HTML5+CSS3制作生日蛋糕代码
2016/11/16 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
品质主管的岗位职责
2013/12/04 职场文书
有关打架的检讨书
2014/01/25 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
教师党员学习十八届四中全会思想汇报
2014/11/03 职场文书
自我检讨书范文
2015/01/28 职场文书
英语辞职信范文
2015/02/28 职场文书
电视新闻稿
2015/07/17 职场文书
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
新手入门Mysql--sql执行过程
2021/06/20 MySQL