惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
美团技术团队
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
月光博客
月光博客
V
Visual Studio Blog
T
Tailwind CSS Blog
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
Jina AI
Jina AI
J
Java Code Geeks
Martin Fowler
Martin Fowler
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
C
Check Point Blog
腾讯CDC
N
Netflix TechBlog - Medium
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
Hacker News: Ask HN
Hacker News: Ask HN
SecWiki News
SecWiki News
博客园 - Franky
Hacker News - Newest:
Hacker News - Newest: "LLM"
N
News | PayPal Newsroom
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
S
Security @ Cisco Blogs
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
F
Full Disclosure
The Cloudflare Blog
Y
Y Combinator Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
S
Schneier on Security
Schneier on Security
Schneier on Security
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
AI
AI
N
News and Events Feed by Topic
T
Tor Project blog
P
Palo Alto Networks Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog

博客园 - jenner

js 更改 onclick 事件 - jenner js 去除字符串中重复的字符 - jenner - 博客园 js 获取选中的checkbox的行的其他值 javactript关闭窗体,刷新父窗体....... - jenner - 博客园 js实现动态级联计分,级数无限制 - jenner - 博客园 winform dgv右键选择 - jenner - 博客园 DataGrid 二维表头 DataGrid导出到Excel or word javascript 对datagrid的一些操作 - jenner - 博客园 DataView 属性操作 - jenner - 博客园 javascript 判断整数 css控制字数(控制宽度) 网站变黑白 漂浮div窗体,带停止 111 test 使用QuickCHM软件轻松编译CHM格式的文件 遍历treeView的所有节点 TreeView第三种状态的另类实现
javascript控制服务器控件-js操作CheckBoxList实现全选、反选
jenner · 2008-06-01 · via 博客园 - jenner

转自:http://hi.baidu.com/rayshow/blog/item/db300a60aff610da8db10d01.html

javascript   服务器控件   CheckBoxList   全选 反选

       对于CheckBoxList控件来说,一方面要实现大量数据在服务器端的绑定工作,另一方面往往要求实现全

选、反选等功能。虽然可以在服务器端完成这方面的工作,但这样一个简单的工作似乎更应该在客户端完

成。

       具体方法:

       在页面中放入一个CheckBoxList控件,并添加几项,用来分析其产生的HTML代码,这样在使用js进行

动态控制时,将会非常清晰其测试代码如下所示:

       <asp:CheckBoxList ID="CheckBoxList1" runat="server" CellPadding="3" CellSpacing="3"

            RepeatColumns="3">

            <asp:ListItem>1232</asp:ListItem>

            <asp:ListItem>254</asp:ListItem>

            <asp:ListItem Value="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代码。

<table id="CheckBoxList1" cellspacing="3" cellpadding="3" border="0">
         <tr>
            <td>
<input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" /><label for="CheckBoxList1_0">1232</label>

           </td>

           <td><input id="CheckBoxList1_4" type="checkbox" name="CheckBoxList1$4" /><label for="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="check All" />

        <inputtype="button"onclick="ReverseAll()"value="Reverse All"id="Button1"/>   

        <input type="button" onclick="deleteAll()" value="delete All" />

     添加全选、反选及清除函数如下:

     function checkAll(){

//            alert(document.getElementById("CheckBoxList1").getElementsByTagName("input").length);

            for(var i=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)

            {

                document.getElementById("CheckBoxList1_"+i).checked=true;

            }            

        }

        function deleteAll(){

            for(var i=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)

             {

                document.getElementById("CheckBoxList1_"+i).checked = false;

            }

        }

        function ReverseAll(){

            for(var i=0;i<document.getElementById("CheckBoxList1").getElementsByTagName("input").length;i++)

             {

                var objCheck = document.getElementById("CheckBoxList1_"+i);

                if(objCheck.checked)

                    objCheck.checked = false;

                else

                    objCheck.checked = true;

            }

        }