我一直在網上尋找答案,也許這是一個比我預期的更復雜(或者我只是不明白解決方案)的情況,但我正在尋找通過單擊垃圾桶圖標簡單地從我的jqgrid中刪除選定的行。簡單的jqgrid在MVC中刪除
目前我的網格正在用Linq填充SQL數據。 這裏是我的網格:
jQuery("#grid").jqGrid({
url: '<%= ResolveUrl("~/Home/GetData") %>',
datatype: "json",
mtype: 'GET',
postData: { DDLid: function() { return jQuery("#DDL option:selected").val(); } },
colNames: ['Col1', 'Col2'],
colModel: [
{ name: 'Col1', index: 'Col1', width: 200, editable: false },
{ name: 'Col2', index: 'Col2', width: 200, editable: false }
],
jsonReader: {
repeatitems: false
},
rowNum: 10,
pager: jQuery('#gridpager'),
sortname: 'Type',
viewrecords: true,
sortorder: "asc",
caption: "Table"
}).navGrid('#gridpager', { del: true, add: false, edit: false, search: false }, {}, {}, {url: "Delete"});
現在在崗的數據「身份證」不在此表的主鍵 - 我只是需要它來幫助填充網格。 我想得到的是選定的行ID並將其傳遞給Delete方法,但我找不到任何方法來做到這一點。
我試過在postData中使用jQuery("#grid").getGridParam('selrow')
,但它總是返回null。
任何幫助將不勝感激。
這裏是我的刪除方法,以供參考:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Delete(int DDLid)
{
int row = Convert.ToInt32(/*I NEED THIS ID*/);
var query = from x in _ctx.DataTable
where ((x.id == row))
select x;
_ctx.DataTable.DeleteOnSubmit(query.Single());
_ctx.SubmitChanges();
return Json(true);
}
這種方法被稱爲是好的,但我得到了錯誤的ID。我需要選定的行的ID。這會中斷,因爲DDLid返回多行(因爲它用於填充網格)。
我希望這是有道理的。
不應該mtype是POST/DELETE而不是GET? – Sunny
我有這樣的navGrid,並且發生了相同的結果: '。navGrid('#gridpager',{del:true,add:false,edit:false,search:false},{},{},{url:「Delete」,mtype:「POST」,reloadAfterSubmit:true}); ' –