Как отловить конец html-манипуляций в KendoGrid после read ()? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть KendoGrid и я хочу обнаружить завершение всех манипуляций (включая манипуляции с html) после чтения ().Как я могу перехватить это событие?

Я пытался использовать событие RequestEnd с типом «read», но после перехвата этого события Kendo изменяет некоторый HTML-код на странице.

Обновление последобавление базы данных

У меня есть KendoSortable, привязанный к KendoGrid, который содержит столбец с позициями.После изменения позиции (функция onChange) мне нужно заблокировать страницу (функция showLoader) и обновить позиции.Поскольку позиции изменились, данные сетки (столбец с позициями) необходимо перезагрузить с помощью read ().И ПОСЛЕ чтения () мне нужно разблокировать страницу с помощью hideLoader.Итак, теперь, если я не отсоединяю onDataBound, моя страница разблокируется после удаления / вставки.

function onDataBound(e) {
        if (ir == 0) {
            updatePostion();
        }
        else {
            hideLoader(); 
        }
        ir++; 
    }

function onChange(e) {                            
        var grid = $("#TestQuestionAnswerList").data("kendoGrid");

        grid.unbind("dataBound");
        var newIndex = e.newIndex;
        var dataItem = grid.dataSource.getByUid(e.item.data("uid"));                           

        grid.dataSource.remove(dataItem);
        grid.dataSource.insert(newIndex, dataItem);
        grid.bind("dataBound", onDataBound);

        showLoader(); 
        updatePostion(); 
}

function updatePostion() {
        if (@Model.Type == 3) {
            var positions = [];
            grid._data.forEach(function (entry) {
                positions.push(entry.ID);
            });
            var dataToPost = { positions: positions, questionID: @Model.ID };
            $.ajax({
                url: '@Url.Action("ChangePositions", "Testing")',
                type: 'POST',
                data: JSON.stringify(dataToPost),
                datatype: 'json',
                cache: false,
                contentType: "application/jsonrequest; charset=utf-8",
                success: function (data) {
                    grid.dataSource.read();
                },
                error: function () {
                    hideLoader();
                    alert("error");
                }
            });
        }
        else {
            grid.dataSource.read(); 
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...