GridView加入 CheckBox为什么得不到CheckBox.Checked==true?
相关代码
前台
<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();
}