2016-05-18 3 views
1

Это может быть легкой проблемой, но я не вижу, что я делаю неправильно здесь. Код:Удаление строки, когда пользователь нажимает кнопку удаления

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(); 
      } 


     } 
    } 

И в конце класса у меня есть этот метод.

protected void dgvSelected_RowDeleting(object sender, GridViewDeleteEventArgs e) 
    { 

    } 

Я использую ASP .NET и у меня есть GridView, что несколько строк и в каждой строке у меня есть кнопка удаления, где пользователь может нажать ее, чтобы удалить эту строку. На данный момент, когда я нажимаю кнопку удаления, весь вид сетки исчезает. Что я делаю не так?

+0

Возможный дубликат (http://stackoverflow.com/questions/34529385/how- to-generate-the-needed-sql-statements-to-update-insert-delete-data-in-grid) –

ответ

0

Попробуйте этот

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

Не работает. Я получаю тот же результат –

0

Поскольку GridView данные были из antoher GridView, решение было сделать VIEWSTATE переменную и сохранить DataTable в нем. А потом удалить одну строку: [? Как создать необходимые операторы SQL для обновления, вставки, удаления данных в GridView]

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(); 
    } 
Смежные вопросы