如何使用asp.net mvc的删除在jqGrid的倍数寄存器? [英] How to delete multiples registers in jqgrid using asp.net mvc?
问题描述
您能帮我,我怎么可以删除在我的jqGrid选择了多个记录?我已经尝试了多种方法,但至今没有得到任何的成功。我会很感激的人谁可以帮我。
的jQuery(#格表)。jqGrid的({
//方向:RTL
网址:/ Lojas / GetLojas
数据类型:JSON, MTYPE:'获取',
高度:100%,
colNames:['',
'名称',
'描述'
]
colModel:
{
名称:'myac',索引:'',宽度:65,固定:真,排序:假的,调整:假的,
格式:'动作',
formatoptions:{
键:真实,
delOptions:{recreateForm:真的,网址:'/ Lojas /删除',beforeShowForm:beforeDeleteCallback},
editformbutton:真,editOptions:{recreateForm:真的,网址:'/ Lojas /编辑',closeAfterEdit:真的,beforeShowForm:beforeEditCallback,closeOnEscape:真正}
}
},
{键:真正的,隐藏的:真正的,名称:'ID',索引:'ID',sorttype:INT,编辑:假},
{键:假的,名称:名称,索引:名称,可编辑:真正},
{键:假的,名称:'说明',索引:描述,可编辑:真正}
] viewrecords:真实,
loadonce:真实,
的rowNum:10,
rowList:[5,10,15],
jsonReader:{
根:行
页:页,
总:总,
记录:记录
repeatitems:假的,
ID:0
},
寻呼机:pager_selector,
altRows:真实,
autowidth:真实,
多选:真实,
multiboxonly:真实,
排序顺序:递减,
multiboxonly:真实,
标题:Lojas Cadastradas
}); // navButtons
jQuery的(#格表)。jqGrid的('navGrid',pager_selector,
{
编辑:真的,
补充:真,
德尔:真实,
搜索:真实,
刷新:真实,
观点:真正的,
},
{
网址:'/ Lojas /编辑',
closeOnEscape:真实,
closeAfterEdit:真实,
recreateForm:真
},
{
网址:'/ Lojas /创建,
closeOnEscape:真实,
closeAfterAdd:真实,
recreateForm:真
},
{
网址:'/ Lojas /删除',
closeOnEscape:真实,
closeAfterDelete:真实,
recreateForm:真
},
{
//搜索表单
recreateForm:真实,
closeOnEscape:真实,
closeAfterSearch:真实,
multipleSearch:真
},
{
//查看记录表
recreateForm:真
}
)
code在我的控制器:
公众的ActionResult删除(洛哈洛哈)
{
洛哈lojaToDelete = db.Lojas.Find(loja.Id);
如果(lojaToDelete == NULL)
{
返回HttpNotFound();
}
db.Lojas.Remove(lojaToDelete);
db.SaveChanges();
返回查看(洛哈);
}
我建议你改变删除功能的原型公众的ActionResult删除(洛哈洛哈)
到
公共无效删除(字符串ID)
在code的主要问题如下。对应于文档 jqGrid的交 ID
参数网址:'/ Lojas /删除
。您可以重命名 ID
参数的使用 prmNames
的名称。在这种情况下,你可以使用 prmNames:{ID:ID}
,但它不是真正需要
如果需要多行被删除,那么 ID
字符串将被逗号分隔,你可以使用像
公共无效删除(字符串ID)
{
变种的id = id.Split(,);
的foreach(lojaId在IDS){
洛哈lojaToDelete = db.Lojas.Find(lojaId);
如果(lojaToDelete == NULL)
抛出新的Htt presponseException(的HTTPStatus code.NotFound);
db.Lojas.Remove(lojaToDelete);
}
db.SaveChanges();
}
Could you please help me how I could do to delete multiple records selected in my jqgrid? I've tried a number of ways, but so far not got any success. I will be grateful to anyone who can help me.
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
}
)
Code in my controller:
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);
}
I recommend you to change prototype of Delete function public ActionResult Delete(Loja loja)
to
public void Delete(string id)
The main problem in your code is the following. Corresponds to the documentation jqGrid post id
parameter to url: '/Lojas/Delete'
. You can rename the name of id
parameter using prmNames
. In the case you can use prmNames: {id: "Id"}
, but it's not really required.
If multiple rows needed be deleted then id
string will be comma separated and you can use something like
public void Delete(string id)
{
var ids = id.Split(',');
foreach (lojaId in ids) {
Loja lojaToDelete = db.Lojas.Find(lojaId);
if (lojaToDelete == null)
throw new HttpResponseException(HttpStatusCode.NotFound);
db.Lojas.Remove(lojaToDelete);
}
db.SaveChanges();
}
这篇关于如何使用asp.net mvc的删除在jqGrid的倍数寄存器?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!