Почему мой 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 Promise/A (именно этого ожидает jsGrid).

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

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

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

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

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

1 ответ

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

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

$("#jsGrid").jsGrid({
    .
    .           
    fields: [
        .
        .
        { type: "control" }
    ]
}); 
Другие вопросы по тегам