我正在使用以下代码段手动调用网格上的保存功能。我正在使用内联编辑。 save函数需要返回一个自定义对象。如何访问返回值?有回调函数吗? successfunc只返回true / false吗?
jQuery("#grid_id").jqGrid('saveRow',rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);
答案 0 :(得分:2)
如果使用saveRow
保存本地数据,您只需在mySaveFunction
内设置一些外部变量(外部作用域中定义的变量)的值。重要的是要理解,您必须使用editRow(或saveRow)的aftersavefunc
参数代替succesfunc
参数。这是典型的误解,但只有在服务器上保存数据时,succesfunc
回调才会被称为 。在succesfunc
的情况下,不会调用'clientArray'
回调。我建议您使用editRow
用法的“对象”形式:
var someRetValue;
jQuery("#grid_id").jqGrid('saveRow', rowid,
{
url: 'clientArray'
aftersavefunc: function (id, response, options) {
someRetValue = response; // set someRetValue to any value
}
});
另一方面,您可以考虑使用回调函数作为您自己的"Save"
函数的参数。如果"Save"
具有afterSaveFunc
参数,则无需使用"Save"
函数的任何返回值。您应该构建JavaScript脚本以使其异步工作,而不是传统的同步顺序执行顺序。