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 相关文章推荐
执行iframe中的javascript方法
Oct 07 Javascript
返回页面顶部top按钮通过锚点实现(自写)
Aug 30 Javascript
每天一篇javascript学习小结(RegExp对象)
Nov 17 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
AngularJS ng-controller 指令简单实例
Aug 01 Javascript
jQuery内存泄露解决办法
Dec 13 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
Aug 28 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
Sep 14 Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
JS实现百度搜索框关键字推荐
Feb 17 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
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
深入php list()函数的详解
2013/06/05 PHP
php三维数组去重(示例代码)
2013/11/26 PHP
php封装的验证码类分享
2017/02/26 PHP
PHP封装的PDO数据库操作类实例
2017/06/21 PHP
js实现DIV的一些简单控制
2007/06/04 Javascript
jQuery基础知识filter()和find()实例说明
2010/07/06 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
JS获取html对象的几种方式介绍
2013/12/05 Javascript
js动态创建上传表单通过iframe模拟Ajax实现无刷新
2014/02/20 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
Egg.js 中 AJax 上传文件获取参数的方法
2018/10/10 Javascript
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
2018/11/05 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
python迭代器与生成器详解
2016/03/10 Python
Python的requests网络编程包使用教程
2016/07/11 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python3实现弹弹球小游戏
2019/11/25 Python
python3 实现调用串口功能
2019/12/26 Python
Python利用命名空间解析XML文档
2020/08/10 Python
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
国家励志奖学金获奖感言
2014/01/09 职场文书
《三峡》教学反思
2014/03/01 职场文书
网络管理专业求职信
2014/03/15 职场文书
销售提升方案
2014/06/07 职场文书
党员四风自我剖析材料
2014/10/07 职场文书
2015年计生协会工作总结
2015/04/24 职场文书
2016年敬老月活动总结
2016/04/05 职场文书