我在一个视图中有两个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扩展方法过载的。
答案 0 :(得分:0)
$.jgrid.del
定义了页面上所有jqGrids使用的默认值。 $.extend
只是将参数(mtype
,serializeDelData
,onclickSubmit
和afterComplete
)的属性与{{}中可能存在的同名属性相结合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