我知道有其他选择,但我真的想在我的项目中使用jsGrid。我正在使用他们网站上指出的1.5.2版本,并将其从CDN中提取出来。我想要的只是按照描述调用更新,以便我可以执行$.ajax
,但似乎回调不会执行任何操作。这是我的实施:
$(function() {
$("#jsGrid").jsGrid({
width: "100%",
height: "600px",
inserting: false,
editing: true,
sorting: true,
paging: false,
autoload: true,
controller: {
loadData: function(filter) {
return $.ajax({
type: "GET",
url: "@Url.Action("getOptions", New With {.communityID = 1})",
data: filter
});
},
updateItem: function (item) {
console.log('hello??');
return $.ajax({
type: "PUT",
url: "/items",
data: item
});
}
},
...
});
})
它在文档中说控制器方法是预期的
返回Promises。没关系,因为我正在使用jQuery 3.0,而且
$.ajax
返回一个现在标准化的Javascript Promise / A(即
什么是jsGrid预期的)。
我知道控制器对象正在被正确理解,因为它
调用loadData()
,并使用REST中的漂亮行填充
服务。
在查看了许多其他示例后,似乎每个人都可以使用文档中提供的非常简单的代码。我的console.log
永远不会被断点击中,并且AJAX调用永远不会在网络选项卡中发生。
我切换到jsgrid.js的非缩小版本,我从来没有得到任何控制台错误。
当我模糊一行(远离我正在编辑的行)时,该值会回到最初的状态。
也许我只是不明白它是如何运作的?要保持对我的数据库的编辑,我应该寻找不同的事件吗?非常感谢任何帮助!
答案 0 :(得分:1)
如果有人搜索此内容,请在此处回答。
我希望在编辑字段然后模糊时触发updateItem
事件。情况并非如此 - 您必须包含一个“控制”字段,默认情况下会为您提供一个保存按钮。这对我的目的来说很好。
$("#jsGrid").jsGrid({
.
.
fields: [
.
.
{ type: "control" }
]
});