当一行的删除按钮被点击时,整个网格视图变得不可见

本文关键字:网格 视图 一行 按钮 删除 | 更新日期: 2023-09-27 18:08:15

当我点击删除按钮时,相应的行被删除。但是gridview中的其余行变为不可见。但当我再次点击链接按钮时,它显示正确. 请帮帮我。代码在这里:

protected void LinkButton2_Click(object sender, EventArgs e)
{
try
   {    SqlConnection con = obj.getcon();
        con.Open();

        GridView1.Visible = true;
        SqlDataAdapter adapter = new SqlDataAdapter("select e.student_id,e.student_name,e.student_nric from student_details e join student_vs_testsession_details f on e.student_id=f.student_id where f.testsession_id='" + lb_testid.Text + "' ", con);
        adapter.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind(); 

        }
    catch (Exception ex)
    {
        Response.Write(ex);
    }
}
 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
 {

    string id =Convert.ToString (GridView1.DataKeys[e.RowIndex].Value);

    SqlConnection con = obj.getcon();
    con.Open();
    SqlCommand cmd = new SqlCommand("DELETE FROM student_vs_testsession_details WHERE student_id='" + id + "'", con);
   // con1.Open();
    int temp = cmd.ExecuteNonQuery();
    if (temp != 0)
  {
      ScriptManager.RegisterStartupScript(this, this.GetType(), "alertmessage", "javascript:alert(' record deleted succesfully')", true);
  }
       con.Close();
       GridView1.Visible = true;
       GridView1.DataBind(); 
}

当一行的删除按钮被点击时,整个网格视图变得不可见

您在这里所做的是从数据库中删除它,而不是从表中删除。(这是分配给您的网格表)

在这种情况下,要么删除行后重新填充数据表要么手动从绑定到gridview的数据表中删除行

你能做的就是添加

LinkButton2_Click(null,null)GridView1之后。在删除函数

或者重写Dataset Function

但是不要忘记,每次你需要给gridview分配表格

希望能有所帮助

缺少网格视图的数据源

Gridview1.DataSource = dt;

将此添加为重新绑定所需的数据源