asp.net单击头模板中的checkbox,实现datalist中所有chebox的全选和取消
转载时请以超链接形式标明文章原始出处和作者信息及本声明
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的全选和取消的更多相关文章
- js实现checkbox组 全选和取消全选
做后台管理程序时,用到一个checkbox组的全选和取消全选的功能, 主要是逻辑上的坑,理清后大概是: 1.全选点击后,小弟1~4都要选上,点击取消,小弟们也要取消 2.只要有一个小弟取消时,全选要取 ...
- 全选、取消、2级 checkbox的选中切换
需求:点击父级checkbox的时候,子级出现全选或全取消:点击子级时,如:子级都是在未选中时,点击某一个子级,则父级选中:如:子级中只有一个选中状态(其他子级都是未选中),点击该子级,则父级也改为未 ...
- bootstrap实现checkbox全选、取消全选
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 最新版本的 ...
- datagridview里面的checkbox全选和取消全选
全选 设置全选button,选中所有的checkbox private void selectAll_Click(object sender, EventArgs e) { //遍历datagridv ...
- jQuery --checkbox全选和取消全选简洁高效的解决办法
最近在公司做了一个小项目,其中有一个全选和取消全选的这么一个模块,搞了半天找不到一种最佳的解决方案!后来通过各种努力找到了一种简洁高效的解决办法,这里想和大家分享一下.有问题的话,还望各路大神指导一二 ...
- checkbox 全选或取消
Html: 点击label 也能 check <div class="checkbox"> <input class ...
- JS对checkbox全选和取消全选
需求:checkbox控制列表数据全选与取消全选择. 效果图: 1.html <body > <input type="button" name="in ...
- JS实现全选与取消 Jquery判断checkbox是否被选中
1.JS实现checkbox全选与取消 <body> <input type="checkbox" name="select_all"/> ...
- checkbox全选和取消功能
这是开发中常见的小功能,想当初我也曾对于attr和prop的不了解踩过坑. 前端工作中,常常会使用到select复选框,select复选框有一个属性checked,当使用js或者jquery控制这个属 ...
随机推荐
- phpstorm 调试 laravel
Reference: http://www.cnblogs.com/imayanlong/p/6375950.html, https://segmentfault.com/a/11900000045 ...
- mybatis中mysql和oracle的差异
1.applicationContext.xml中的配置差异: 在applicationContext.xml的数据源dataSource的配置中,mysql数据库需要心跳包的配置,而oracle中不 ...
- Excel中功能清单转Project任务
接:http://www.cnblogs.com/vipsoft/p/8495220.html 1.在E列输入公式: =IF(LEN(A2)>1,1,IF(LEN(B2)>1,2,IF(L ...
- 审计一波appcms-持续更新。
废话 看到土司大牛都在审计,作为彩笔也要审计下去.该文章置顶持续更新.大家有啥可以评论区交流. 先对其目录进行分析 -admin/ #后台文件 - - -cache/ #缓存目录 -core/ #核心 ...
- Mysql 优化,慢查询
最近项目上遇到点问题,服务器出现连接超时.上次也是超时,问题定位到mongodb上,那次我修改好了,这次发现应该不是这个的问题了. 初步怀疑是mysql这边出问题了,写的sql没经过压力测试,导致用户 ...
- swift,NSUserDefaults的swift化封装
NSUserDefaultshtml, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror- ...
- mysql多表查询及其 group by 组内排序
//多表查询:得到最新的数据后再执行多表查询 SELECT *FROM `students` `st` RIGHT JOIN( //先按时间排序查询,然后分组(GROUP BY ) SELECT * ...
- JVM内存的设置
一.JVM内存的设置的原理 默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError. 设置jvm内存的方法,对于单独的.class ...
- 事件EVENT与waitforsingleobject的使用以及Mutex与Event的区别
Mutex与Event控制互斥事件的使用详解 最近写一程序,误用了Mutex的功能,错把Mutex当Event用了. [Mutex] 使用Mutex的主要函数:CreateMutex.ReleaseM ...
- 枚举Enum和常量0之间的恩怨
1,任何为0的常量表达式都能隐式的转换成枚举Enum. 对于这一点,在程序中没少吃苦头.特别是对于函数重载的情况,往往让人一头雾水. 看看下面的代码(摘自MSDN),你能猜到输出吗? public e ...