2016-10-19 3 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 
        }); 
       } 
      }, 

      ... 
     }); 
    }) 
  • Это говорит в документации, что методы контроллера, как ожидается, вернуть Promises. Это нормально, поскольку я использую jQuery 3.0, а $.ajax возвращает стандартизированный Javascript Promise/A (который является , что ожидает jsGrid).

  • Я знаю объект контроллера быть правильно понят, потому что называет loadData() и заполнит с красивыми рядами из моей службы REST .

  • После просмотра многих других примеров кажется, что каждый получает его для работы с очень простым кодом, представленным в документации. Мой console.log никогда не попадает на точку останова, и вызов AJAX никогда не происходит на вкладке сети.

  • Я переключился на неминифицированную версию jsgrid.js, и я никогда не получаю никаких консольных ошибок.

  • Когда я размываю строку (удаляюсь от строки, которую редактирую), значение возвращается к тому, что первоначально было.

Возможно, я просто не понимаю, как это работает? Чтобы продолжить редактирование моей БД, нужно ли мне искать другое событие? Любая помощь будет очень высоко ценится!

+0

Когда вы ожидаете вызова 'updateItem'? 'updateItem' следует вызывать после сохранения после редактирования. У вас есть пример с опубликованным в любом месте, чтобы увидеть проблему? – tabalin

ответ

0

Ответьте здесь, если кто-либо ищет это.

Я ожидал, что событие updateItem должно быть запущено, когда поле было отредактировано, а затем размыто. Это не так - вы ДОЛЖНЫ включать в себя поле «control», которое по умолчанию даст вам кнопку сохранения. Это было прекрасно для моих целей.

$("#jsGrid").jsGrid({ 
    . 
    .   
    fields: [ 
     . 
     . 
     { type: "control" } 
    ] 
}); 
Смежные вопросы