我已经看到@Oleg几乎所有的例子和答案都在那里,还没有找到解决方案。这是我的网格 -
$(grid).jqGrid({
datatype: 'local',
mtype: 'GET',
url: "/Views/MyUrl",
editUrl: "/Views/MyEditUrl",
colNames: colNames,
colModel: colModel,
altRows: false,
pager: $(pager),
loadonce: true,
sortable: true,
multiselect: false,
viewrecords: true,
shrinkToFit: false,
gridView: true
// onSelectRow: editRow
}).navGrid(pager, { add: false, edit: false, del: false, search: false}
$grid.jqGrid('inlineNav', pager, {
edit: true,
add: true,
del: true,
cancel: true,
save: true,
editParams: {
keys: false
},
addParams: {
keys: true
}
});
我正在使用 jqGrid 4.6版本和内联行编辑。
我试过了onselectRow'在其中我称之为“拯救行动”。而不是' restoreRow' ,那也没有用
在我编辑行之后,我想将整行数据发送回控制器以在数据库中更新。现在,它甚至没有击中控制器方法。
答案 0 :(得分:0)
请参阅中的链接 Here
您必须将数据保存在oneditfunc回调函数
上 $(grid).jqGrid({
...
onSelectRow: function(id){
if(id && id!==lastSel){
jQuery('#grid_id').restoreRow(lastSel);
lastSel=id;
}
$(grid).jqGrid('editRow',rowid,
{
keys : true,
oneditfunc: function() {
alert('Edit Complete');
},
beforeSaveRow: function (o, rowid) {
// this is where you should save the data
// Do validation and save the data here
// Note, the 'beforeSaveRow' is undocumented, but it gets invoked before jqGrid calls its own SaveRow method.
// Get data by rowid and save it to DB and then
grid.saveRow(rowid, false);
return false;// To avoid jqgrid from invoking its own save again
},
aftersavefunc: function (rowid) {
// this fired is after saving
var rowData = $this.jqGrid("getRowData", rowid);
}
},
...
});