方法一:用客户端的JavaScript实现
前台代码:
<asp:TemplateField>
<HeaderTemplate>
<input type="checkbox" id="chkAll" name="chkAll" οnclick="Check(this,'GridView1')" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server" />
</ItemTemplate>
</asp:TemplateField>
实现全选的JavaScript:
<script language="javascript" type="text/javascript">
function Check(parentChk, pattern) {
var elements = 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; }
}
}
}
function IsMatch(id, pattern) {
var regularExpression = new RegExp(pattern);
return id.match(regularExpression);
}
function IsCheckBox(chk) {
return (chk.type == 'checkbox');
}
</script>
后台代码:
for (int i = 0; i < GridView1.Rows.Count; i++)
{
//精华都在这条if语句上
if (((CheckBox)GridView1.Rows[i].Cells[0].Controls[1]).Checked == true)
{
//进行逻辑处理的代码
}
}
方法二:在服务端实现全选
<asp:TemplateField HeaderText="全选">
<HeaderTemplate>
<asp:CheckBox ID="checkall" runat="server" Text="全选"
AutoPostBack="true" OnCheckedChanged="checkAll" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="check" runat="server" Text="选择" />
</ItemTemplate>
</asp:TemplateField>
后台:
protected void checkAll(object sender, EventArgs e)
{
CheckBox cb = (CheckBox) sender;
if (cb.Text == "全选")
{
foreach (GridViewRow gvr in gvLessons.Rows)
{
CheckBox cb1 = (CheckBox)gvr.FindControl("check");
cb1.Checked = cb.Checked;
}
}
}