保存后的jqgrid回调函数

时间:2012-09-14 20:20:04

标签: jquery jqgrid

我正在使用以下代码段手动调用网格上的保存功能。我正在使用内联编辑。 save函数需要返回一个自定义对象。如何访问返回值?有回调函数吗? successfunc只返回true / false吗?

jQuery("#grid_id").jqGrid('saveRow',rowid, succesfunc, url, extraparam, aftersavefunc,errorfunc, afterrestorefunc);

1 个答案:

答案 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脚本以使其异步工作,而不是传统的同步顺序执行顺序。