我知道还有其他选择,但我真的很想在我的项目中使用 jsGrid。我正在使用他们网站上指示的 1.5.2 版本,并从 CDN 中提取它。我想要的只是按照描述调用更新,以便我可以执行 a $.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 的非缩小版本,我从未收到任何控制台错误。
当我模糊一行(远离我正在编辑的一行)时,值会恢复到最初的样子。
也许我只是不明白它是如何工作的?要将编辑持久化到我的数据库,我应该寻找不同的事件吗?任何帮助将不胜感激!