全选/全不选总结
1.grideview的后台全选/全不选方法
1 public void SelectAllNot(Object sender, EventArgs e) 2 { 3 CheckBox SelectAll = 4 (CheckBox)GridView1.HeaderRow.FindControl("Checkbox_Header"); 5 6 if (SelectAll.Checked == true) 7 { 8 foreach (GridViewRow CheckBoxItem in GridView1.Rows) 9 ((CheckBox)CheckBoxItem.FindControl("Checkbox_OP")). 10 Checked = true; 11 } 12 else 13 { 14 foreach (GridViewRow CheckBoxItem in GridView1.Rows) 15 ((CheckBox)CheckBoxItem.FindControl("Checkbox_OP")). 16 Checked= false; 17 } 18 }
逐个选取时,可以使用foreach循环
1 bool IsChecked = false; 2 foreach (GridViewRow CheckBoxItem in GridView1.Rows) 3 { 4 IsChecked = ((CheckBox)CheckBoxItem.FindControl("Checkbox_OP")).Checked; 5 if (IsChecked) 6 { 7 8 } 9 }
前台一般都是固定样式,比较常见
1 <asp:TemplateField HeaderText="checkboxselectall" HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" HeaderStyle-CssClass="FixedTitleColumn" ItemStyle-CssClass="FixedDataColumn" > 2 <HeaderTemplate> 3 <asp:CheckBox id="Checkbox_Header" runat="server" BorderWidth="0px" BorderColor=White AutoPostBack="true" OnCheckedChanged="SelectAllNot">//SelectAllNot对应后台方法 4 </asp:CheckBox> 5 </HeaderTemplate> 6 <ItemTemplate> 7 <asp:CheckBox id="Checkbox_OP" runat="server" BorderWidth="0px"></asp:CheckBox> 8 </ItemTemplate> 9 </asp:TemplateField>
其中grideview表头ID等属性一般在<asp:TemplateField></asp:TemplateField>中,而datagrideview。。 <asp:TemplateColumn> </asp:TemplateColumn>.
全选也可以使用js实现,例如:
1 //js实现全选/全不选 2 function SelectAllCheckboxes(spanChk) { 3 elm = document.forms[0]; 4 for (i = 0; i < elm.length; i++) { 5 if (elm[i].type == "checkbox" && elm[i].id != spanChk.id) 6 { 7 if (elm.elements[i].checked != spanChk.checked) 8 elm.elements[i].click(); 9 } 10 } 11 }
在CheckBox中只需要在表头调用onclick方法就可以实现:onclick="SelectAllCheckboxes(this)"
datagrid全选:
1 //全选操作 2 protected void Checkbox_Header_CheckedChanged(object sender, EventArgs e) 3 { 4 bool SelectAll = false; 5 SelectAll = ((CheckBox)((Table)Datagrid1.Controls[0]).Rows[0].FindControl("Checkbox_Header")).Checked; 6 7 if (SelectAll == true) 8 { 9 foreach (DataGridItem CheckBoxItem in this.Datagrid1.Items) 10 { 11 ((CheckBox)CheckBoxItem.FindControl("Checkbox_OP")).Checked = true; 12 } 13 } 14 else 15 { 16 foreach (DataGridItem CheckBoxItem in this.Datagrid1.Items) 17 { 18 ((CheckBox)CheckBoxItem.FindControl("Checkbox_OP")).Checked = false; 19 } 20 } 21 }