我知道有替代品,但我真的想在我的项目中使用jsGrid。我正在使用他们网站上提供的1.5.2版本,并将其从CDN中提取出来。我只需要按照所述调用更新,以便我可以执行$.ajax
,但似乎回调没有任何作用。下面是我的实现:为什么我的jsGrid拒绝更新已编辑的行?
$(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
});
}
},
...
});
})
它说,该控制器方法有望 返回承诺的文件中。这是正常的,因为我使用的是jQuery 3.0,而
$.ajax
返回一个现在标准化的Javascript Promise/A(这是jsGrid期望的 )。我知道控制器对象被正确的理解,因为它 调用
loadData()
,并从我的REST 服务的漂亮行填充。看过很多其他例子后,似乎每个人都可以使用文档中提供的非常简单的代码进行工作。我的
console.log
永远不会被击中断点,并且AJAX调用从不会在网络选项卡中发生。我切换到非缩小版本的jsgrid.js,我从来没有得到任何控制台错误。
当我模糊一行(远离正在编辑的行移动)时,该值会回到最初的状态。
也许我只是不明白它是如何工作的?要坚持编辑我的数据库,我应该寻找一个不同的事件?任何帮助将非常感谢!
你预计什么时候调用updateItem?编辑后保存''updateItem'应该被调用。 你有没有在任何地方发表的例子看到这个问题? – tabalin