【发布时间】:2016-01-27 19:03:20
【问题描述】:
我几乎一天都在集思广益,讨论如何使用内联编辑 jQgrid 保存按钮调用我的 MVC 控制器操作。 请看下面的截图
我已经为 jqGrid 尝试了以下配置
$("#tbl-items").CreateGrid({
url: '@Url.Action("ItemList", "Item")',
editurl: '@Url.Action("Create", "Item")',
jsonReader: { id: "ItemID" },
prmNames: { id: "ItemID" },
colNames: ['Item ID', Item Name],
colModel: [{ name: 'ItemID', index: 'ItemID', sorttype: 'integer', hidden: true, key: true },
{ name: 'ItemName', index: 'ItemName', sortable: true, autowidth: true, shrinkToFit: true, searchoptions: { sopt: ['cn'] }, editable: true }],
gridCompleteCallback: function () {
//Code to bind my custom edit and delete button as per the requirement
},
container: "#container-item",
server: true,
pagerID: "#itempager",
sortName: 'ItemName',
sortorder: 'asc',
loadingText: 'Loading please wait',
noRecordText: 'Not records found'
});
为了覆盖保存事件,我尝试了以下脚本
function saveItem(action) {
return {
url: '@Url.Action("Create", "Item")', // Url to my MVC controller
onclickSubmit: function (params) {
var list = $("#tbl-items");
var selectedRow = list.getGridParam("selrow");
// Code
}
};
}
$("#tbl-items").jqGrid('navGrid', '#itempager',
{
//add: false,
edit: false,
del: false
},
saveItem('PUT')
);
$("#tbl-items").jqGrid('inlineNav', '#itempager',
{
edit: false,
add: true,
});
我知道我在 jqGrid 配置中做错了什么。任何人都可以纠正我解决我的问题。提前致谢
【问题讨论】:
-
错误很明显:您将表单编辑选项与内联编辑选项混合使用。为了给您确切的建议,我需要知道您使用哪个版本的 jqGrid 以及哪个分支(free jqGrid、Guriddo jqGrid JS 或版本
-
@Oleg 我正在使用 JqGrid 4.5.1
-
我得离开一个小时。首先查看inlineNav 的
editParams选项。稍后我会写答案。 -
@Oleg 试过但没有运气。
-
好的,我回来了。请描述您希望使用哪些导航按钮和哪些 URL 以及哪些 HTTP 方法。您的代码使用
edit: false, del: false调用navGrid。因此它添加了添加表单编辑按钮、刷新和搜索。然后你用edit: true, add: true(默认)和save: true, cancel: true调用inlineNav,这也是默认的。结果,您将拥有带有两个添加按钮(一个表单编辑,一个内联编辑)和一个编辑按钮(内联编辑)的导航栏。是你想要的吗? Add ('@Url.Action("Create", "Item")') 需要设置哪些 URL,Edit 需要设置哪些 URL?
标签: jquery asp.net-mvc jqgrid inline inline-editing