简体   繁体   English

当用户按下删除按钮时删除一行

[英]Deleting a row when the user presses delete button

This might be a easy problem but i don't see what i'm doing wrong here. 这可能是一个简单的问题,但我不知道我在这里做错了什么。 The code is: 代码是:

 protected void dgvSelected_RowCommand (object sender, GridViewCommandEventArgs e)
    {
        if(e.CommandName =="Delete")
        {
            if (!string.IsNullOrEmpty(e.CommandArgument.ToString()))
            {
                int RowIndex = Convert.ToInt32(e.CommandArgument);
                dgvSelected.DeleteRow(RowIndex);


                dgvSelected.DataBind();
            }


        }
    }

And at the end of the class i have this method. 在课程结束时,我有这种方法。

protected void dgvSelected_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {

    }

I'm using asp .net and i have a gridview that several rows and at each row i have a delete button where the user can press it to delete the row. 我正在使用asp .net,我有一个gridview,几行,每行我有一个删除按钮,用户可以按下它删除行。 For the moment when i press the delete button the whole gridview disappears. 当我按下删除按钮时,整个网格视图消失。 What am i doing wrong? 我究竟做错了什么?

Try this 尝试这个

protected void dgvSelected_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
    dgvSelected.DataBind();
}

Since the gridview data was from antoher gridview, the solution was to make a viewstate variable and save the datatable in it. 由于gridview数据来自antoher gridview,因此解决方案是创建一个viewstate变量并将数据表保存在其中。 And then to delete one row: 然后删除一行:

protected void dgvSelected_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int index = Convert.ToInt32(e.RowIndex);
        DataTable dt = ViewState["SelectedValue"] as DataTable;
        dt.Rows[index].Delete();
        ViewState["SelectedValue"] = dt;
        dgvSelected.DataSource = dt;
        dgvSelected.DataBind();
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM