相关代码
前台
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>
<asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="id" DataNavigateUrlFormatString="content.aspx?id={0}" DataTextField="title" HeaderText="标题">
<ItemStyle Font-Size="Smaller" HorizontalAlign="Left" Height="25px"></ItemStyle>
</asp:HyperLinkField>
</Columns>
</GridView >
<asp:CheckBox ID="CheckBox2" runat="server" Text="全选" oncheckedchanged="CheckBox2_CheckedChanged" AutoPostBack="True" />
<asp:Button ID="Button2" runat="server" Text="取消" onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="删除" onclick="Button3_Click" />后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
} protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("CheckBox1")).Checked = true;
}
}
private void Bind()
{
//相关绑定数据
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
} protected void Button2_Click(object sender, EventArgs e)
{
CheckBox2.Checked = false;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked = false;
}
} protected void Button3_Click(object sender, EventArgs e)
{
for (int i = 0; i <= this.GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)(GridView1.Rows[i].Cells[1].FindControl("CheckBox1"));
if (cbox.Checked == true)
{
SqlCommand comm = new SqlCommand("delete from book where id='" + GridView1.DataKeys[i].Value + "'", sqlconn);
sqlconn.Open();
comm.ExecuteNonQuery();
sqlconn.Close();
}
}
Bind();
}
前台
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>
<asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="id" DataNavigateUrlFormatString="content.aspx?id={0}" DataTextField="title" HeaderText="标题">
<ItemStyle Font-Size="Smaller" HorizontalAlign="Left" Height="25px"></ItemStyle>
</asp:HyperLinkField>
</Columns>
</GridView >
<asp:CheckBox ID="CheckBox2" runat="server" Text="全选" oncheckedchanged="CheckBox2_CheckedChanged" AutoPostBack="True" />
<asp:Button ID="Button2" runat="server" Text="取消" onclick="Button2_Click" />
<asp:Button ID="Button3" runat="server" Text="删除" onclick="Button3_Click" />后台
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
} protected void Button1_Click(object sender, EventArgs e)
{
foreach (GridViewRow row in GridView1.Rows)
{
((CheckBox)row.Cells[0].FindControl("CheckBox1")).Checked = true;
}
}
private void Bind()
{
//相关绑定数据
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
} protected void Button2_Click(object sender, EventArgs e)
{
CheckBox2.Checked = false;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked = false;
}
} protected void Button3_Click(object sender, EventArgs e)
{
for (int i = 0; i <= this.GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)(GridView1.Rows[i].Cells[1].FindControl("CheckBox1"));
if (cbox.Checked == true)
{
SqlCommand comm = new SqlCommand("delete from book where id='" + GridView1.DataKeys[i].Value + "'", sqlconn);
sqlconn.Open();
comm.ExecuteNonQuery();
sqlconn.Close();
}
}
Bind();
}
===============
((CheckBox)row.FindControl("CheckBox1")).Checked = true; CheckBox cbox = (CheckBox)(GridView1.Rows[i].Cells[1].FindControl("CheckBox1"));
===========
CheckBox cbox = (CheckBox)(GridView1.Rows[i].FindControl("CheckBox1"));
{
bool commend = (((CheckBox)(GridView1.Rows[e.RowIndex].Cells[2].FindControl("CheckBox1"))).Checked == true ? true: false);
}
{
((CheckBox)row.FindControl("CheckBox1")).Checked = true;
}
通过JS全选
if (cbox.Checked)这样的啦,我之前也遇到这样的问题,只是不知道是什么原因导致的
for (int i = 0; i < GridView1.Rows.Count; i++)
{
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cb.Checked)
{
// ......
}
}