在单页 MVC 中删除多个 jqGrid
delete on multiple jqGrids in singe page MVC
我在一个视图中有两个 jqGrids。我加载这些网格没有问题,但是当我尝试从 grid1 中删除记录时,它被发布到 grid2 删除方法中设置的 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 扩展方法加载过载。
$.jgrid.del
定义了页面上所有 jqGrids 使用的 defaults。 $.extend
只是将参数的属性(mtype
、serializeDelData
、onclickSubmit
和 afterComplete
)与可能存在于 [= 中的同名属性相结合14=]。因此 jqGrid 使用对象 $.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, {...});
设置页面上的常用默认值并单独设置其他参数:
$.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;
}
});
如果你使用free jqGrid fork, which I develop, then you can specify Delete parameters inside of formDeleting
option of jqGrid. Additionally, free jqGrid supports functions as the value of url
(see 了解更多细节),你可以重写上面的代码如下
$.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,那么您可以从 url
函数访问它并重写代码如下
$.extend($.jgrid.del, {
mtype: "DELETE",
serializeDelData: function () {
return ""; // don't send and body for the HTTP DELETE
},
url: function (rowid, postData, options) {
return options.url + rowid;
}
});
$("#grid1").jqGrid({
...
editurl: "url1/"
}).jqGrid("navGrid");
$("#grid2").jqGrid({
...
editurl: "url2/"
}).jqGrid("navGrid");
我在一个视图中有两个 jqGrids。我加载这些网格没有问题,但是当我尝试从 grid1 中删除记录时,它被发布到 grid2 删除方法中设置的 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 扩展方法加载过载。
$.jgrid.del
定义了页面上所有 jqGrids 使用的 defaults。 $.extend
只是将参数的属性(mtype
、serializeDelData
、onclickSubmit
和 afterComplete
)与可能存在于 [= 中的同名属性相结合14=]。因此 jqGrid 使用对象 $.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, {...});
设置页面上的常用默认值并单独设置其他参数:
$.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;
}
});
如果你使用free jqGrid fork, which I develop, then you can specify Delete parameters inside of formDeleting
option of jqGrid. Additionally, free jqGrid supports functions as the value of url
(see
$.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,那么您可以从 url
函数访问它并重写代码如下
$.extend($.jgrid.del, {
mtype: "DELETE",
serializeDelData: function () {
return ""; // don't send and body for the HTTP DELETE
},
url: function (rowid, postData, options) {
return options.url + rowid;
}
});
$("#grid1").jqGrid({
...
editurl: "url1/"
}).jqGrid("navGrid");
$("#grid2").jqGrid({
...
editurl: "url2/"
}).jqGrid("navGrid");