使用extend在jqgrid中设置删除选项不起作用

时间:2016-02-03 07:20:24

标签: jquery jqgrid

我试图根据this question使用jqgrid的休息服务,我想设置" DELETE"我的所有网格的metod,但jqgrid仍然使用POST作为发送删除请求的方法。我是这样做的:

$.extend($.jgrid.del, {
mtype: "DELETE"});

这是我在navGrid中的网格实例删除选项:

{
    url: '../../webresources/routing/phoneNumber',

    serializeDelData: function () {
        return ""; // don't send and body for the HTTP DELETE
    },
    onclickSubmit: function (params, postdata) {
        params.url += '/' + encodeURIComponent(postdata);
    },
    errorTextFormat: function (data) {
        return 'Error: ' + data.responseText;
    }
}

如果我设置了mtype:" DELETE"在navGrid删除选项中,它按预期工作。

1 个答案:

答案 0 :(得分:0)

我想您将声明$.extend($.jgrid.del, { mtype: "DELETE"});放在了错误的地方。此外,使用$.extend的非深度版本也很危险。我建议你使用

$.extend(true, $.jgrid.del, { mtype: "DELETE"});

代替。此外,您可以将mtype: "DELETE" 直接放在navGrid的删除选项列表中。

请在所有问题中始终写下您使用的jqGrid版本以及jqGrid(free jqGridGuriddo jqGrid JS或版本中的旧jqGrid <= 4.7)的哪个版本我开发了免费的jqGrid fork,因为它已经实现了很多新功能。一些新功能简化了RESTful服务的使用。请参阅the answer,其中显示了如何使用url定义为删除操作的函数,并使用urlmtype定义为添加/编辑功能。