aspx中:
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckBox_全选" runat="server" OnCheckedChanged="CheckBox_全选_CheckedChanged" AutoPostBack="true" Text="全选" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="ItemCheckBox" runat="server" OnCheckedChanged="ItemCheckBox_CheckedChanged" AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
<Columns>
cs中:
protected void CheckBox_全选_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkBox = (CheckBox)sender;
for (int i = 0; i < GridView1.Rows.Count; ++i)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("ItemCheckBox");
if (cb.Checked != checkBox.Checked)
{
cb.Checked = checkBox.Checked;
}
}
}
protected void ItemCheckBox_CheckedChanged(object sender, EventArgs e)
{
int checkedCount = 0;
for (int i = 0; i < GridView1.Rows.Count; ++i)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("ItemCheckBox");
checkedCount += cb.Checked ? 1 : 0;
}
CheckBox checkBox = (CheckBox)GridView1.HeaderRow.FindControl("CheckBox_全选");
checkBox.Checked = checkedCount == GridView1.Rows.Count;
}