我一直在网上寻找答案,也许它比我预期的更复杂(或者我只是不理解解决方案),但我正在寻找一种方法来简单地从我的 jqgrid 通过单击垃圾桶图标。
目前我的网格正在填充 Linq to 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"});
现在 post 数据中的 'id' 不是该表中的主键 - 我只需要它来帮助填充网格。我想得到的是选定的行 id 并将其传递给 Delete 方法,但我找不到任何方法来做到这一点。
我曾尝试jQuery("#grid").getGridParam('selrow')
在 postData 中使用,但它总是返回 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 返回不止一行(因为它用于填充网格)。
我希望这是有道理的。