2

削除ボタンをクリックすると、対応する行が削除されます。ただし、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(); 

}
4

2 に答える 2

0

グリッド ビューのデータ ソースがありません

Gridview1.DataSource = dt;

再バインドするにはデータ ソースが必要なため、これを追加します。

于 2013-04-09T06:03:03.713 に答える
0

ここで行っているのは、テーブルからではなく、データベースから削除することです (グリッドに割り当てられたテーブルです)。

その場合、行を削除した後にデータテーブルを再作成するか、グリッドビューにバインドされたデータテーブルから手動で行を削除する必要があります

あなたができることは追加することです

LinkBut​​ton2_Click(null,null) after GridView1.Visible = true; 削除機能で

またはデータセット関数を書き直してください。

ただし、テーブルをグリッドビューに割り当てる必要があるたびに忘れないでください

お役に立てれば

于 2013-04-09T06:16:02.970 に答える