2009-11-17 5 views
3

Как включить множественный выбор в jqGrid, а также разрешить пользователям удалять все выбранные строки с помощью ASP.NET MVC-контроллера?
Я установил свойство url delete для метода my/Controller/Delete, и это отлично работает, если выбрана одна запись. Однако, если выбрано несколько записей, он пытается отправить нулевое значение обратно контроллеру, где требуется целочисленный идентификатор.Удаление нескольких записей в ASP.NET MVC с помощью jqGrid

ответ

2

Вы можете, но вы должны написать код для него:

deleteSelected: function(grid) { 
    if (!grid.jqGrid) { 
     if (console) { 
      console.error("'grid' argument must be a jqGrid"); 
     } 
     return; 
    } 
    var ids = grid.getGridParam('selarrrow'); 
    var count = ids.length; 
    if (count == 0) return; 
    if (confirm("Delete these " + count + " records?")) { 
     $.post("DeleteMultiple", 
      { ids: ids }, 
      function() { grid.trigger("reloadGrid") }, 
      "json"); 
    } 
} 

    [HttpPost] 
    public ActionResult DeleteMultiple(IEnumerable<Guid> ids) 
    { 
     if (!Request.IsAjaxRequest()) 
     { 
      // we only support this via AJAX for now. 
      throw new InvalidOperationException(); 
     } 
     if (!ids.Any()) 
     { 
      // JsonError is an internal class which works with our Ajax error handling 
      return JsonError(null, "Cannot delete, because no records selected."); 
     } 
     var trans = Repository.StartTransaction(); 
     foreach (var id in ids) 
     { 
      Repository.Delete(id); 
     } 
     trans.Commit(); 
     return Json(true); 
    } 
0

Я хочу обновить это для MVC2 и JQuery 1.4.2, если вы хотите, чтобы передать параметры массива в MVC2:

 

var ids = $("#grid").getGridParam('selarrrow'); 
var postData = { values: ids }; 
if (confirm("Delete these " + count + " records?")) { 
       $.ajax({ 
        type: "POST", 
        traditional: true, 
        url: "GridDBDemoDataDeleteMultiple", 
        data: postData, 
        dataType: "json", 
        success: function() { $("#grid").trigger("reloadGrid") } 
       }); 
      } 

check http://jquery14.com/day-01/jquery-14 ajax part thx

Смежные вопросы