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 名(要设成隐藏!);
}
}