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 相关文章推荐
cnblogs TagCloud基于jquery的实现代码
Jun 11 Javascript
JQuery防止退格键网页后退的实现代码
Mar 23 Javascript
了不起的node.js读书笔记之node的学习总结
Dec 22 Javascript
jQuery实现冻结表格行和列
Apr 29 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
js前端导出Excel的方法
Nov 01 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
Nov 03 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 Javascript
Vue如何获取数据列表展示
Dec 11 Javascript
vue+Element中table表格实现可编辑(select下拉框)
May 21 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
Sep 02 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
一首老MP3,致敬WAR3经典
2021/03/08 魔兽争霸
PHP与javascript的两种交互方式
2006/10/09 PHP
php 中include()与require()的对比
2006/10/09 PHP
初级的用php写的采集程序
2007/03/16 PHP
PHPThumb图片处理实例
2014/05/03 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
用js实现的一个Flash滚动轮换显示图片代码生成器
2007/03/14 Javascript
初窥JQuery(一)jquery选择符 必备知识点
2010/11/25 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
php基于redis处理session的方法
2016/03/14 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
百度小程序自定义通用toast组件
2019/07/17 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python 中random模块的常用方法总结
2017/07/08 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
python 爬虫网页登陆的简单实现
2020/11/30 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
高中生活自我鉴定
2014/01/18 职场文书
教导处工作制度
2014/01/18 职场文书
乔迁之喜主持词
2014/03/27 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
指导教师推荐意见
2015/06/05 职场文书
java设计模式--建造者模式详解
2021/07/21 Java/Android