Gridview Row Удалить - PullRequest
       6

Gridview Row Удалить

0 голосов
/ 29 ноября 2010

У меня есть Gridview. Я поместил кнопку удаления в последнем столбце строки. всякий раз, когда я нажимаю кнопку удаления, конкретная строка должна удаляться из сетки, а также из базы данных. Вот мой код aspx

<script language="javascript" type="text/javascript">
    function DeleteEmployeeDetails(roleId) 
{
   if (confirm('Are you sure you want to delete this role?')) 
 {
 $.get("DeactivateRole?roleId=" + roleId,
 function () 
 {
     $('#row' + roleId).remove(); 
      //or
     $('#button' + roleId).parent().parent().remove(); 
 });
    }
}    function loadRoleList()
{
    $.ajaxSettings.cache = false;
    $.get(roleListActionUrl, roleList_callBack);
}

//This method is used to render the role details in the role List div
function roleList_callBack(data) {
    data = data + '<div id="AddRole"></div>';
    $("#EmpDetails").html(data);
}

Это мой контроллер

 public ActionResult DeactivateRole(string roleId)
    {
       // What should i do here for Row Delete 
       return View();
    }

1 Ответ

0 голосов
/ 29 ноября 2010

Когда я делаю нечто подобное с AJAX, я делаю две вещи:

  1. Удалить в базе данных
  2. Удалить строку, используя JavaScript при обратном вызове, например

    функция DeleteEmployeeDetails (roleId) { if (подтвердите («Вы уверены, что хотите удалить эту роль?»)) { $ .get ("DeactivateRole? roleId =" + roleId, function () {

           //roleList_callBack();
    
    
    <pre><code>   $('#row' + roleId).remove(); //Grab the row and delete it
    
    
       //If you don't have specific Id's for every row but your button does you could use the $.parent() function.
    
    
       $('#button'+roleId).parent().parent().remove(); //This finds the parent of the parent of the button and removes it. You can use as many parents as you'd like until you get a hold on the actual row, though this isn't always recommended due to if you change the design in some way your parent might not be correct. 
    
    
    });
    
    }

    }

Если удаление успешно выполнено в вашей базе данных, строка мгновенно исчезает, и вам не нужно перезагружать все данные из базы данных.

То, как вы удаляете строку в вашей базе данных, зависит от того, какую платформу вы используете. Если вы используете ADO.NET Entity Framework, вы можете сделать что-то вроде этого:

public ActionResult DeactivateRole (string roleId) {

   My_Namespace.Models.DataContext dc = new My_Namespace.Models.DataContext();

   dc.DeleteObject(dc.Roles.FirstOrDefault(r => r.ID == roleId)); 
   dc.SaveChanges();

   return View();
}

Метод DeleteObject () принимает фактический объект-объект-базу данных в качестве аргумента, который он использует для удаления соответствующей записи в вашей базе данных.

Используемый мной аргумент (dc.Roles.FirstOrDefault (r => r.ID == roleId)) получает объект из таблицы ролей базы данных.

...