问题描述
我在DataView里面添加了一列CheckBox,如下:TemplateFieldtfColumn=null;tfColumn=newTemplateField();tfColumn.HeaderTemplate=newMyTemplate("YESNO",DataControlRowType.Header,"","","");tfColumn.ItemTemplate=newMyTemplate("myCheckBox1",DataControlRowType.DataRow,"CheckBox","myCheckBox1","myCheckBox1");gvshow.Columns.Add(tfColumn);然后绑定数据:gvshow.DataSource=dt;gvshow.DataBind();添加一个按钮用来改变所有CheckBox的值:protectedvoidbtnSelectAll_Click(objectsender,EventArgse){for(inti=0;i<gvshow.Rows.Count;i++){CheckBoxck=(CheckBox)this.gvshow.Rows[i].Cells[3].FindControl("myCheckBox1");ck.Ckecked=true;}}但是这样得出的ck全部为null,不能改变Check的状态。请问这种情况下怎样取得和改变CheckBox值?
解决方案
本帖最后由 JayJay 于 2011-12-01 16:27:16 编辑
解决方案二:
请各位帮帮忙!谢谢了!
解决方案三:
<scripttype="text/javascript">functionCheck(parentChk,pattern){varelements=document.getElementsByTagName("INPUT");for(i=0;i<elements.length;i++){if(parentChk.checked==true){if(IsCheckBox(elements[i])&&IsMatch(elements[i].id,pattern)){elements[i].checked=true;}}else{if(IsCheckBox(elements[i])&&IsMatch(elements[i].id,pattern)){elements[i].checked=false;}}}}functionIsMatch(id,pattern){varregularExpression=newRegExp(pattern);returnid.match(regularExpression);}functionIsCheckBox(chk){return(chk.type=='checkbox');}</script><asp:TemplateFieldHeaderText="全选"><HeaderTemplate><asp:CheckBoxID="CheckBox1"runat="server"Text="全选"onclick="Check(this,'^DataGridView')"/></HeaderTemplate><ItemTemplate><asp:CheckBoxID="CheckBox2"runat="server"/><asp:HiddenFieldID="HiddenField1"runat="server"Value='<%#Eval("repairbillno")+"|"+Eval("version_no")%>'/></ItemTemplate></asp:TemplateField>
解决方案四:
我想不改前台JS和HTML的情况下得到这种效果,有没有办法?