Почему мой jsGrid отказывается обновлять отредактированную строку?

#javascript #jsgrid

#javascript #jsgrid

Вопрос:

Я знаю, что есть альтернативы, но я действительно хочу использовать jsGrid в своем проекте. Я использую версию 1.5.2, указанную на их веб-сайте, и извлекаю ее из CDN. Все, что я хочу, это чтобы обновление вызывалось так, как описано, чтобы я мог выполнить $.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
                    });
                }
            },

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

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

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

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

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

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

Комментарии:

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

Ответ №1:

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

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

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