转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://blueseach.blogbus.com/logs/31281126.html

使用C#和javascript都可以实现,第二种更好一些,页面不用总是刷新。只是想对.net学得更深入,所以两种方法都尝试了。

1、用c#实现:

aspx文件:

<asp:DataList ID="dlistNews" runat="server" >
            <HeaderTemplate><table>
            <tr><td>
                <asp:CheckBox ID="chkAll" runat="server"  Text="全选" OnCheckedChanged="chkAll_CheckedChanged"  AutoPostBack="True"  /></td> </tr>
            </HeaderTemplate>
            <FooterTemplate></table></FooterTemplate>
            <ItemTemplate>            <tr><td>
                <asp:CheckBox ID="chk" runat="server"  /></td>。。。。
            </ItemTemplate>
        </asp:DataList>

响应函数:

protected void chkAll_CheckedChanged(object sender, EventArgs e)
    {
      
            if (((CheckBox)sender).Checked==true)
            {

foreach (DataListItem j in dlistNews.Items)
                {
                    CheckBox cb = (CheckBox)j.FindControl("chk");
                    cb.Checked = true;
                }
            }
            else
            {
                foreach (DataListItem j in dlistNews.Items)
                {
                    CheckBox cb = (CheckBox)j.FindControl("chk");
                    cb.Checked = false;
                }
            }        
  }

开始时不懂用((CheckBox)sender).Checked来获取chkAll的值,通过listItem的FindControl来查找,无论如何都找不到,查了很久才发现在listItem中查找的只是Itemtemplate中的控件,在headertemplate和footertemplate中的必须用其他方法。

查找headertemplate的:((CheckBox)dlistNews.Controls[0].FindControl("chkAll"))。这样也可以得到chkAll的值。

查找footertemplate的:((CheckBox)dlistNews.Controls[dlistNews.Controls.Count - 1].FindControl("chkAll"))

2、用javascript实现

把chkAll的属性修改为:<asp:CheckBox ID="chkAll" runat="server"  Text="全选" onclick="SelectAll(this) "    AutoPostBack="False"  />

<script type="text/javascript" language="javascript">
    function SelectAll(box)
    {
      var table = document.getElementById("dlistNews");   //获得datalist

var checkes =table.getElementsByTagName("input");

for(var i=0;i<checkes.length;i++)
      {
           if(box.checked == true)
            {
                if(checkes[i].type=="checkbox")
                {
                    checkes[i].checked=true;
                }
            }
            else
            {
                if(checkes[i].type=="checkbox")
                {
                   checkes[i].checked=false;
                }
            }
      }
</script>

asp.net单击头模板中的checkbox,实现datalist中所有chebox的全选和取消的更多相关文章

  1. js实现checkbox组 全选和取消全选

    做后台管理程序时,用到一个checkbox组的全选和取消全选的功能, 主要是逻辑上的坑,理清后大概是: 1.全选点击后,小弟1~4都要选上,点击取消,小弟们也要取消 2.只要有一个小弟取消时,全选要取 ...

  2. 全选、取消、2级 checkbox的选中切换

    需求:点击父级checkbox的时候,子级出现全选或全取消:点击子级时,如:子级都是在未选中时,点击某一个子级,则父级选中:如:子级中只有一个选中状态(其他子级都是未选中),点击该子级,则父级也改为未 ...

  3. bootstrap实现checkbox全选、取消全选

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 最新版本的 ...

  4. datagridview里面的checkbox全选和取消全选

    全选 设置全选button,选中所有的checkbox private void selectAll_Click(object sender, EventArgs e) { //遍历datagridv ...

  5. jQuery --checkbox全选和取消全选简洁高效的解决办法

    最近在公司做了一个小项目,其中有一个全选和取消全选的这么一个模块,搞了半天找不到一种最佳的解决方案!后来通过各种努力找到了一种简洁高效的解决办法,这里想和大家分享一下.有问题的话,还望各路大神指导一二 ...

  6. checkbox 全选或取消

    Html: 点击label 也能 check <div class="checkbox">                        <input class ...

  7. JS对checkbox全选和取消全选

    需求:checkbox控制列表数据全选与取消全选择. 效果图: 1.html <body > <input type="button" name="in ...

  8. JS实现全选与取消 Jquery判断checkbox是否被选中

    1.JS实现checkbox全选与取消 <body> <input type="checkbox" name="select_all"/> ...

  9. checkbox全选和取消功能

    这是开发中常见的小功能,想当初我也曾对于attr和prop的不了解踩过坑. 前端工作中,常常会使用到select复选框,select复选框有一个属性checked,当使用js或者jquery控制这个属 ...

随机推荐

  1. swift-Xcode7.x(7.1,7.2,7.3)新建playground运行不能运行

    swift-Xcode7.xhtml, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror- ...

  2. Cacti的库表结构-Data

    cacti 的数据都是存放在rrdtool 中的,数据库存放的其实只是配置数据,cacti 的逻辑对象主要分为三种,data (数据).graph (图片).host (设备),这在它的表设计中也能很 ...

  3. 【微信小程序】使用setTimeout制作定时器的思路

    setTimeout(func, time)可以使得每隔time毫秒就执行一次func函数,常用来做计时器/时钟. 下面是在微信小程序中的使用思路,只截取了关键部分代码. var timer; // ...

  4. wifi 模块RTL8188以及mt7601u 移植测试

    kernel version:4.4.12 kernel make menuconfig // make menuconfig [*] Networking support ---> Netwo ...

  5. MyEclipse Maven Tomcat

    http://bbs.csdn.net/topics/390098011

  6. RavenDb学习(八)高级特性上半部分

    .事务支持 别的关系型数据库和RavenDb一起使用 using (var transaction = new TransactionScope()) { BlogPost entity = sess ...

  7. mongoimport 导入数据

    最后 利用mongodb自带的mongoimport工具可以上传csv文件 命令如下 mongoimport -h localhost --port 27017 -d test222 -c c21 - ...

  8. 自然语言交流系统 phxnet团队 创新实训 项目博客 (十)

      关于本项目中使用到的庖丁分词的总结:   Paoding 详细介绍 庖丁中文分词库是一个使用Java开发的,可结合到Lucene应用中的,为互联网.企业内部网使用的中文搜索引擎分词组件.Paodi ...

  9. Selenium常用操作汇总二——如何操作select下拉框

    下面我们来看一下selenium webdriver是如何来处理select下拉框的,以http://passport.51.com/reg2.5p这个页面为例.这个页面中有4个下拉框,下面演示4种选 ...

  10. C++ 结构体和枚举

    共同体 共同体(union) 是一种数据格式, 它能够存储不同的数据类型, 但只能同时存储其中的一种类型.也就是说, 结构可以同时存储int.long 和 double, 共同体只能存储int.lon ...