Asp.net 使用复选框从gridview中选择单个行
我有一个gridview,它在template字段中包含一个复选框。我想检索选中复选框的行的值,以便通过数据库更新它们。这是我的密码:Asp.net 使用复选框从gridview中选择单个行,asp.net,gridview,checkbox,Asp.net,Gridview,Checkbox,我有一个gridview,它在template字段中包含一个复选框。我想检索选中复选框的行的值,以便通过数据库更新它们。这是我的密码: protected void approve_Click(object sender, EventArgs e) { for (int i = 0; i < GridView1.Rows.Count; i++) { if (((CheckBox)GridView1.Rows[i].Fi
protected void approve_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("Select")).Checked)
{
然而,它似乎不起作用。例如,我检查了表中的五行,它只更新第一行。我该怎么办?在找到选中的行后,您正在重新绑定Gridview。完成所有更新操作后绑定它:
protected void approve_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("Select")).Checked)
{
//I thought if the loop finds a checked check box, it will execute the following to that row:
con.Open();
string approve = "update table set status ='Approved' where ID=" + GridView1.Rows[i].Cells[1].Text + "";
SqlCommand scmapprove = new SqlCommand(approve, con);
scmapprove.ExecuteNonQuery();
//view(); //Donot rebind the gridview now.
con.Close();
}
}
view();
}
protected void approve\u单击(对象发送者,事件参数e)
{
对于(int i=0;i
您是将ID绑定到第二列还是第一列?你的代码看起来不错!您是否需要GridView1.Rows[i].Cells[0].Text
?您好,我试过了,它说找不到ID。我想这是因为复选框在第0行?什么是view()代码>?你要用这个重新绑定Gridview吗?是的。这是一个函数,这就是问题所在。重新绑定后,将重新生成所有行。因此,在完成检查和更新数据库后绑定GridView。请看下面我的答案。
protected void approve_Click(object sender, EventArgs e)
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl("Select")).Checked)
{
//I thought if the loop finds a checked check box, it will execute the following to that row:
con.Open();
string approve = "update table set status ='Approved' where ID=" + GridView1.Rows[i].Cells[1].Text + "";
SqlCommand scmapprove = new SqlCommand(approve, con);
scmapprove.ExecuteNonQuery();
//view(); //Donot rebind the gridview now.
con.Close();
}
}
view();
}