Не могли бы вы помочь мне, как я мог бы сделать, чтобы удалить несколько записей, выбранных в моем jqgrid? Я пробовал несколько способов, но пока не получил никакого успеха. Я буду благодарен всем, кто может мне помочь.Как удалить многократные регистры в jqgrid с помощью asp.net mvc?
jQuery("#grid-table").jqGrid({
//direction: "rtl",
url: "/Lojas/GetLojas",
datatype: 'json',
mtype: 'Get',
height: '100%',
colNames: [ ' ',
'Name',
'Description'
],
colModel: [
{
name: 'myac', index: '', width: 65, fixed: true, sortable: false, resize: false,
formatter: 'actions',
formatoptions: {
keys: true,
delOptions: { recreateForm: true, url: '/Lojas/Delete', beforeShowForm: beforeDeleteCallback },
editformbutton: true, editOptions: { recreateForm: true, url: '/Lojas/Edit', closeAfterEdit: true, beforeShowForm: beforeEditCallback, closeOnEscape: true }
}
},
{ key: true, hidden: true, name: 'Id', index: 'Id', sorttype: "int", editable: false },
{ key: false, name: 'Name', index: 'Name', editable: true},
{ key: false, name: 'Description', index: 'Description', editable: true}
],
viewrecords: true,
loadonce: true,
rowNum: 10,
rowList: [5, 10, 15],
jsonReader: {
root: "rows",
page: "page",
total: "total",
records: "records",
repeatitems: false,
Id: "0"
},
pager: pager_selector,
altRows: true,
autowidth: true,
multiselect: true,
multiboxonly: true,
sortorder: "desc",
multiboxonly: true,
caption: "Lojas Cadastradas"
});
//navButtons
jQuery("#grid-table").jqGrid('navGrid', pager_selector,
{
edit: true,
add: true,
del: true,
search: true,
refresh: true,
view: true,
},
{
url: '/Lojas/Edit',
closeOnEscape: true,
closeAfterEdit: true,
recreateForm: true
},
{
url: '/Lojas/Create',
closeOnEscape: true,
closeAfterAdd: true,
recreateForm: true
},
{
url: '/Lojas/Delete',
closeOnEscape: true,
closeAfterDelete: true,
recreateForm: true
},
{
//search form
recreateForm: true,
closeOnEscape: true,
closeAfterSearch: true,
multipleSearch: true
},
{
//view record form
recreateForm: true
}
)
код в мой контроллер:
public ActionResult Delete(Loja loja)
{
Loja lojaToDelete = db.Lojas.Find(loja.Id);
if (lojaToDelete == null)
{
return HttpNotFound();
}
db.Lojas.Remove(lojaToDelete);
db.SaveChanges();
return View(loja);
}
Большое спасибо за ваше решение, Олег! Я просто изменил код, чтобы преобразовать строку в целое число, чтобы найти запись в базе данных, и этот код работал отлично! Спасибо!!! Окончательный код: 'общественного недействительными Delete (строка ID) { \t вар Идентификаторы = id.Split (''); \t foreach (var lojaId in ids) { int idLoja = Convert.ToInt32 (lojaId); \t \t Loja lojaToDelete = db.Lojas.Find (idLoja); \t \t если (lojaToDelete == NULL) \t \t \t бросить новый HttpResponseException (HttpStatusCode.NotFound); \t \t db.Lojas.Remove (lojaToDelete); \t} \t db.SaveChanges(); } ' – David
@ Давид: Добро пожаловать! Я просто написал код без его тестирования. Я рекомендую вам проверить, правильно ли выбрано исключенное исключение в вашей среде, или вы должны использовать другой. Вы можете использовать обратный вызов 'errorTextFormat' для настройки текста, отображаемого на стороне клиента при ошибке удаления. На стороне сервера можно настроить сериализацию исключений (см. 'HandleJsonExceptionAttribute' в [старом ответе] (http://stackoverflow.com/a/5501644/315935)). – Oleg