DataGrid 模板列中全选CheckBox 并在删除选中后给出选择删除提示

DataGrid 模板列中全选CheckBox 并在删除选中后给出选择删除提示
function checkAll()
{
    
 var ckbD = document.getElementsByName('ckbDelete'); // 模板列项的 htmlCheckBox ID
   
 var checked = document.all.ckbAll.checked;
   
 for(var i=0;i<ckbD.length;i++)
 {
  ckbD[i].checked = checked;    
 }
}

//************************  上面的 ckbDelete 控件如果不是运行在服务器端(即没加runat=server) 那就会在删除按钮触发后选中状态全部丢失....

解决的办法就是加入 runat=server.

但之后就无法使用 var ckbD = document.getElementsByName('ckbDelete');  找到控件了,所有的checkbox 控件名都由DataGrid 生成时重新命名了。

可以用下面的办法解决:

 function checkAll()
{
  var rowcount = document.all.DataGrid1.rows.length; // DataGrid行数
  var checked = document.all.ckbAll.checked; // 列头 选中
  for(var i=2;i;i<rowcount+1;i++) // 因为下标从1开始且列头也算一行
  {
     var ckbD = document.getElementsByName('DataGrid1__ctl'+i.toString()+'_ckbDelete');
     ckbD[0].checked = checked; // 获取的是一个数组,所以要用 [0] 来处理
 }

// ************************ 结束 ************************/

PS:
考虑到用户按了删除键后最好再给个提示让它可以选择删除与否,
比较好的解决办法是:

把原来的Button控件的Visable设置为false.
加入个HtmlButton, 在它的 onclick 事件里写: οnclick="javascript:deleteConfirm();"
再加入 javascript 代码
 function deleteConfirm()
 {
 if(confirm('你确定要删除这些设备吗?'))
  {
 __doPostBack('btnDelete','');  // btnDelete 为 真正要执行删除操作的 Button 名(要设成隐藏!);
 }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值