删除单页MVC中的多个jqGrids

时间:2016-02-17 12:19:14

标签: jquery asp.net-mvc jqgrid

我在一个视图中有两个jqGrids。我在加载这些网格时没有遇到任何问题,但是当我尝试从grid1中删除记录时,它被发布到grid2 delete方法中设置的URL。

我使用下面的代码删除两个jqGrids中的行。

$.extend($.jgrid.del, {
    mtype: "DELETE",
    serializeDelData: function () {
        return ""; // don't send and body for the HTTP DELETE
    },
    onclickSubmit: function (params, postdata) {
        params.url = 'url' + postdata;
    },
    afterComplete: function (response, postdata, formid) {
    }
});

我写了两个单独的方法来删除相应的网格,两种方法都是如上所述。

请告诉我如何在两个jqgrids上执行删除操作。

我认为删除grid1中的行的扩展方法是由grid2扩展方法过载的。

1 个答案:

答案 0 :(得分:0)

$.jgrid.del定义了页面上所有jqGrids使用的默认值$.extend只是将参数(mtypeserializeDelDataonclickSubmitafterComplete)的属性与{{}中可能存在的同名属性相结合1}}。因此,jqGrid在创建网格期间不使用对象$.jgrid.del ,但在执行删除操作期间则使用

之类的代码
$.jgrid.del

将仅使用 $.extend($.jgrid.del, {...}); // first settings $("#grid1").jqGrid({ ... }).jqGrid("navGrid"); $.extend($.jgrid.del, {...}); // the second settings $("#grid2").jqGrid({ ... }).jqGrid("navGrid"); 的第二个设置

因此,您应该使用$.jgrid.del在页面上设置常用默认值并分别设置其他参数:

$.extend($.jgrid.del, {...});

如果你使用我开发的free jqGrid fork,那么你可以在jqGrid的$.extend($.jgrid.del, { mtype: "DELETE", serializeDelData: function () { return ""; // don't send and body for the HTTP DELETE } }); $("#grid1").jqGrid({ ... }).jqGrid("navGrid", ....., { /*Del options*/ onclickSubmit: function (params, postdata) { params.url = 'url1' + postdata; } }); $("#grid2").jqGrid({ ... }).jqGrid("navGrid", ....., { /*Del options*/ onclickSubmit: function (params, postdata) { params.url = 'url2' + postdata; } }); 选项中指定Delete参数。此外,免费的jqGrid支持函数作为formDeleting的值(有关详细信息,请参阅the answer),您可以按以下步骤重写上述代码

url

如果您将$.extend($.jgrid.del, { mtype: "DELETE", serializeDelData: function () { return ""; // don't send and body for the HTTP DELETE } }); $("#grid1").jqGrid({ ... formDeleting: { url: function (rowid) { return "url1/" + rowid; } } }).jqGrid("navGrid"); $("#grid2").jqGrid({ ... formDeleting: { url: function (rowid) { return "url2/" + rowid; } } }).jqGrid("navGrid"); 设置为每个网格中的基本网址,那么您可以从editurl函数访问它并重写代码,如下所示

url