2016-10-19 31 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" } 
    ] 
}); 
相关问题