【发布时间】:2013-12-06 11:04:51
【问题描述】:
我已经为此苦苦挣扎了整整一周,找不到正确的解决方案....
我使用内联编辑,它只使用键和鼠标进行更新和编辑,但是我可以让行来编辑和更改某些内容,但是在输入时我无法将行保存到服务器也无法捕获行更新后(输入)。 我到处搜索如何解决这个问题,但在任何地方都找不到合乎逻辑的解决方案。
我在从 OnRowSelect 调用的单独函数中使用的代码:
function savedata (id, lastsel, $grd) {
lastStatus = $('#_grid_action').val();
alert(id + ' ' + lastStatus);alert(id + ' ' + lastsel + ' ' + lastStatus );
if (id === lastsel && lastStatus == 1) {
var rowData = $grd.jqGrid("getRowData",id);
var dataToSend = JSON.stringify(rowData);
alert('if equal: ' + dataToSend);
}
if (id !== lastsel && lastStatus == '')
{
lastStatus = 1;
$grd.jqGrid('editRow', id,
{
keys : true,
oneditfunc : function(id) {
alert ("edited: " + id);
},
successfunc : function(id) {
alert ("succeed");
return true;
},
url : "dataServices/objects.asmx/InvokeTest",
extraparam :
{
'item': 'testedti'
},
aftersavefunc : function(id) {
alert ("after save");
return true;
},
errorfunc: null,
afterrestorefunc : null,
restoreAfterError : true,
mtype : "POST"
});
lastsel = id;
$('#_grid_action').val('1');
}
}
主要问题是: 1.输入行数据后什么都消失了,因为我在任何地方都找不到任何东西,这是如何“自动”保存到我的网络服务以及它使用的参数,与extraparam一样,我似乎只能用于静态参数而不是捕获行数据,将其转换为 JSON 并将其发送到一些预定义的参数。 我实际上尝试完成的是在editrow中使用saverow根据onenter事件将我想要的数据发送到服务器几乎所有“func”都在那里但没有像“beforesavefunc”这样的东西,也许我错过了一些非常简单的东西,但是哪里都找不到了
确认来自 Olegs 公司的文件,editrow 应该能够直接处理 saverow,因为它很棒 (http://www.trirand.com/jqgridwiki/doku.php?id=wiki%3ainline_editing#saverow)。
更新: 我现在可以通过添加到 serializeRowData return { q: JSON.stringify(postData) } 来获得,但现在它给出的响应是我有一个无效的 JSON 原语...... 有人知道为什么,因为我使用 JSON.stringify .....
会得到一些帮助 )))
【问题讨论】: