一个遍历Datagrid的小小问题,小弟给你们跪求了!!!高手们请进………………
如题,由于小弟对js 不是很熟,现在用dataGrid显示数据,其中有一个为checkbox(是服务器控件)的模板列,此外还有修改按钮!
现在问题是要求单击“修改”按钮时判断checkbox是否被选中,选中后判断是否为单选(因为一次只能修改一行纪录)
我的服务器代码为: btn_modify.attribute.add( "onlick ", "javascript:checkModify(); ")
现在要求大侠们帮我写一下这个checkModify();的js代码,要求遍历datagrid中的checkbox,并判断!说明:在Datagrid中既有模板列checkbox,还有其他绑定的数据列!
还有一个问题是在判断后,如何用 js获取选中该行的数据ID号呢?以便传给其他页面便于修改!
请高手写的详细点!!!小弟先谢过了!
------解决方案--------------------private void ImgBtnAdd_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
//检索模块权限
string model = " ";
foreach(DataGridItem item in this.DataGrid1.Items)
{
for(int i=0;i <item.Cells[0].Controls.Count;i++)
{
Control control = item.Cells[0].Controls[i];
if(control.GetType().Name == "CheckBox ")
{
CheckBox ckb = (CheckBox)control;
if(ckb.Checked == true)
{
model += ckb.Text + ", ";
//写你的代码
}
}
}
}
}
------解决方案--------------------//javascript
function check(){
var flag = false;
var col = document.getElementsByTagName( "input ");//取得input元素集合,返回NodeList集合//alert( "col.length = " + col.length);
var input = null;
var id = null;
for(var i=0;i <col.length;i++){
input = document.getElementsByTagName( "input ")[i];//循环 input
if(input.getAttribute( "type ") == "checkbox "){
id = input.getAttribute( "id ");
if(id.indexOf( "checkbox1 ") > -1){
if(input.getAttribute( "checked ") == true){
flag = true;
break;
}
}
}
}
if(flag == false)
{
if(confirm( '还没有选择,确实要提交吗? '))
return true;
else
return false;
}else{
return true;
}/**/
}
------解决方案--------------------提交过去的ID号在Request.Params.Keys集合里面自己去找吧,是有规律的
------解决方案--------------------up 一下.