转载时请以超链接形式标明文章原始出处和作者信息及本声明
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. Android背景颜色渐变

    ●使用XML的方式为背景添加渐变效果 1.在res/drawable文件夹里添加一个jbshape.xml文件,然后写入如下代码: <?xml version="1.0" e ...

  2. Oracle 自启动配置

    最后是放在rc.d/rc.local  里面,否则脚本编写错误 Linux有可能都启不来 [root@ChenJun-CentOS6 bin]# vi /etc/init.d/oracle #!/bi ...

  3. Linux0.11从开机到准备执行main函数的启动学习

    最近一直在看操作系统以及内核设计的东西,不确定自己有能力会参与到类似的开发之中,但是争取能自己改造这内核玩一下,然后按照Linux From Scratch那样的把改造后的系统编译运行就心满意足了.正 ...

  4. Android——shape和selector和layer-list的(详细说明 转)

    <shape>和<selector>在Android UI设计中经常用到.比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到<shape> ...

  5. 如何防止Arp攻击

    首先需要查找网关的IP和MAC地址. 查看的方法很多,最直接的在cmd里面执行arp -a.但这是被arp攻击之前,被攻击成功后,192.168.0.1对应的mac地址会变成攻击电脑的Mac地址. 还 ...

  6. sql逻辑查询 理论知识

    参考并转载http://www.cnblogs.com/bhtfg538/archive/2008/11/25/1341016.html First: (8) SELECT (9) DISTINCT  ...

  7. Extjs4.2 TreeView TreeStore 移除节点不触发delete(remove node don't trigger delete method)

    当我们操作treeview的时候,新增节点,如果成功则新增node,如果失败的话我们不想node还显示出来,可以通过监听sync的failure事件,失败时候移除node,但是第一次肯定达到了预期效果 ...

  8. C# 最全的系统帮助类

    using System;using System.Collections;using System.Collections.Generic;using System.Configuration;us ...

  9. Linux 客户端bind函数的使用

    无连接的socket的客户端和服务端以及面向连接socket的服务端通过调用bind函数来配置本地信息. 使用bind函数时,通过将my_addr.sin_port置为0,函数会自动为你选择一个未占用 ...

  10. 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 输入例子 ...