我知道有替代品,但我真的想在我的項目中使用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