您的位置:首页 > 其它

改进的CheckBox模板列实现单选的方法

2006-05-14 16:26 351 查看
函数代码(Javascript):


function SetCheckBoxState(id)






{


var dom=document.getElementsByTagName("INPUT"); //文档中的所有Input元素


var el=event.srcElement;//触发事件的本元素


if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox")//如果本元素是checkbox






{


for(i=0;i<dom.length;i++)






{


if(dom[i].type.toLowerCase()=="checkbox"&&dom[i].id.indexOf(id)>-1)






{


//将同一列的所有其它checkbox的checked设为false




if (el.id!=dom[i].id)






{


dom[i].checked=false;


}


}


}


}


}

本函数根据网友所写修改而来。改进之处有:
1.引入参数id即模板列里checkbox的id,增加了对此id的判断以区分页面中有多个CheckBox列的情形。
2.缩小了遍历的范围,提高了执行效率。
3.解决不能取消选择的问题。

使用时,只要在gridview绑定数据后给checkbox加上事件就可以,如:


for (int i = 0; i < GridView1.Rows.Count; i++)






{


CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");


cb.Attributes.Add("OnClick", "SetCheckBoxState('CheckBox1')");


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: