gpt4 book ai didi

JQGrid,编辑网址

转载 作者:行者123 更新时间:2023-12-01 15:14:27 25 4
gpt4 key购买 nike

我是 jQuery 的新手,我需要在我的项目中使用 jqGrid。

我有一个关于编辑/删除/插入的问题;我只有一个 URL,editurl,然后在 Controller 中我使用 oper 属性来决定它是插入操作还是删除操作。

但我想在 jqGrid 中有一个单独的 URL 用于编辑、删除和插入操作。你能告诉我如何实现吗?

客户端代码:

$(document).ready(function () {
var lastsel2;
var grid = jQuery("#list5").jqGrid({
url: '/home1/GetUserData',
datatype: "json",
mtype: "POST",
colNames: ['Code', 'LoginID', 'Emailid', 'CreateDate'],
colModel: [
// { name: 'act', index: 'act', width: 75, sortable: false },
{name: 'Code', index: 'Code', width: 55, editable: true },
{ name: 'LoginID', index: 'LoginID', width: 90, editable: true },
{ name: 'Emailid', index: 'Emailid', width: 100, editable: true },
{ name: 'CreateDate', index: 'CreateDate', width: 100, editable: true }
],
rowNum: 10,
width: 700,
height: 300,
rowList: 10,
pager: $("#pager2"),
editurl: "/home1/EditUserData",
onSelectRow: function (id) {
if (id && id !== lastsel2) {
if (id == "new_row") {
grid.setGridParam({ editurl: "/home1/InsertUserData" });
}
else {
grid.setGridParam({ editurl: "/home1/EditUserData" });
}
jQuery('#list5').restoreRow(lastsel2);
$("#list5_ilsave").addClass("ui-state-disabled");
$("#list5_ilcancel").addClass("ui-state-disabled");
$("#list5_iladd").removeClass("ui-state-disabled");
$("#list5_iledit").removeClass("ui-state-disabled");
lastsel2 = id;
}
},
caption: "Simple data manipulation"
});
jQuery("#list5").jqGrid('navGrid', '#pager2', { edit: false, add: false, del: true, search: false, refresh: false }, {}, {}, { url: '/home1/DeleteUserData' });
jQuery("#list5").jqGrid('inlineNav', "#pager2", { edit: true, add: true, del: true, search: false, refresh: false });
});

最佳答案

您可以像这样使用 navGrid 方法为所有操作传递选项:

jQuery('#list5').jqGrid('navGrid', '#pager2', { edit: true, add: true, del: true },
//edit options
{ url: '/home1/EditUserData' },
//add options
{ url: '/home1/AddUserData' },
//delete options
{ url: '/home1/DeleteUserData' }
);

请阅读更多herehere .

更新

在 inlineNav 方法的情况下,jqGrid 总是将相同的参数集(editParams)传递给 saveRow 方法。因此,将对同一 URL 发出编辑/添加请求。您坚持检查 oper 以区分编辑和添加。

在重新加载网格的主题中,您可以使用 editParams 设置 aftersavefunc 来触发 realoadGrid,如下所示:

jQuery('#list5').jqGrid('inlineNav', '#pager2', { edit: true, add: true, editParams: {
aftersavefunc: function(rowId, response) { jQuery('#list5').trigger('reloadGrid'); }
}});

但是你应该记住它也会在编辑后引起刷新(因为与上述相同的原因) - 你可以尝试使用 response 参数来区分这两者。我还从代码中删除了删除、搜索和刷新,因为 inlineNav 没有这些选项。

关于JQGrid,编辑网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com