Кендо: Как сохранить панель инструментов при сохранении и восстановлении состояния сетки? - PullRequest
1 голос
/ 13 июня 2019

Я сохранил заголовок общего характера, потому что мне все равно, получу ли я ответ в jquery, javascript или специально для MVC.

У меня есть этот код для сохранения и загрузки сетки:

$("#save").click(function() {
var grid = $("#grid").data("kendoGrid");

var dataSource = grid.dataSource;

var state = kendo.stringify(grid.getOptions());


$.ajax({
    method: "POST",
    url: "/ebol/savegrid",
    data: {
        data: state
    }
});
});

$("#load").click(function () {
var grid = $("#grid").data("kendoGrid");

var dataSource = grid.dataSource;

$.ajax({
    url: "/ebol/loadgrid",
    success: function (options) {
        if (options) {
            grid.setOptions(JSON.parse(options));
        }
    }
});
});

Проблема: я могу сохранить состояние сетки (включая порядок столбцов, фильтры и т. Д.), Но когда я иду на восстановлениеэто с кнопкой загрузки, столбец команды сетки исчезает.
enter image description here

Как сохранить эти кнопки также во время восстановления?

1 Ответ

2 голосов
/ 13 июня 2019

Другой наш разработчик, который работал над этой проблемой на другой странице, решил эту проблему для меня.Вам необходимо отсоединить панель инструментов перед загрузкой настроек сетки.Это кажется мне хаком, но, по словам Кендо, сохранение и загрузка настроек не поддерживаются, так что это лучшее, что у нас есть.Мой исправленный код:

    $("#load").click(function () {
    var grid = $("#grid").data("kendoGrid");
    $.ajax({
        url: "/ebol/loadgrid",
        success: function(state) {
            if (state) {
                state = JSON.parse(state);
                let toolBar = $("#grid .k-grid-toolbar").detach();
                grid.setOptions(state);
                $("#grid .k-grid-toolbar").replaceWith(toolBar);
            }
        }
    });
});
...