2016-10-19 65 views
2

我知道有替代品,但我真的想在我的項目中使用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,我從來沒有得到任何控制檯錯誤。

  • 當我模糊一行(遠離正在編輯的行移動)時,該值會回到最初的狀態。

也許我只是不明白它是如何工作的?要堅持編輯我的數據庫,我應該尋找一個不同的事件?任何幫助將非常感謝!

+0

你預計什麼時候調用updateItem?編輯後保存''updateItem'應該被調用。 你有沒有在任何地方發表的例子看到這個問題? – tabalin

回答

0

如果有人在這裏搜索,請在這裏回答。

我希望updateItem事件被觸發,當一個字段被編輯,然後模糊。情況並非如此 - 你必須包含一個「控制」字段,默認情況下會給你一個保存按鈕。這對我的目的來說很好。

$("#jsGrid").jsGrid({ 
    . 
    .   
    fields: [ 
     . 
     . 
     { type: "control" } 
    ] 
}); 
相關問題