Автоматически отменяющий запрос jqgrid

Я знаю об этом ответе:Как добавить кнопку отмены в мой jqgrid?, и я'Я пытаюсь реализовать нечто подобное, хотя и без кнопки, чтобы вызвать отмену. Iv»я получил сетку, которая загружается при загрузке страницы (поиск, который по умолчанию загружается без критериев), и я 'Я хотел бы иметь возможность отменить поиск пустых критериев по умолчанию, когда пользователь фактически выполняет поиск с критериями. Так как я немне не нужна кнопкаЯ пытаюсь упростить решение, просто отслеживая запрос xhr в методе loadBeforeSend и прерывая этот xhr, если он не равен нулю, когда я загружаю сетку. Код:

var gridXhr;
function getGridData() {
    var searchParms = ...;
    var colHeaders = [...];
    var colDefinitions = [...];
    if (gridXhr != null) {
        alert(gridXhr.readyState);
        gridXhr.abort();
        gridXhr = null;
    }
    $('#grid').jqGrid('GridUnload');
    $('#grid').jqGrid({
        defaults: {...},
        autowidth:true,
        url: "/ExecuteSearch",
        mtype: 'POST',
        ajaxGridOptions: { contentType: "application/json" },
        postData: searchParms,
        datatype: "json",
        prmNames: {
            nd: null,
            rows: null,
            page: null,
            sort: null,
            order: null
        },
        jsonReader: {
            root: function (obj) { return obj.d; },
            page: function (obj) { return 1; },
            total: function (obj) { return (obj.d.length / 20); },
            records: function (obj) { return obj.d.length; },
            id: 'CatalogID',
            cell: '',
            repeatitems: false
        },
        loadonce: true,
        colNames: colHeaders,
        colModel: colDefinitions,
        caption: "Search Results",
        pager: 'searchPaging',
        viewrecords: true,
        loadBeforeSend: function (xhr) {
            gridXhr = xhr;
        },
        loadError: function (xhr, status, error) {
            gridXhr = null;
            if (error != 'abort') {
                alert("Load Error:" + status + "\n" + error);
            }
        },
        loadComplete: function() {
            gridXhr = null;
        },
        multiselect: ,
        multiboxonly: true
    }).setGridWidth(popWidth);
}

Проблема яу меня есть то, что последующие казни jqGrid нет работа. Функция loadError сработала с ошибкой (3-й параметр)прервать «. Нужно ли делать что-то еще / другое с loadBeforeSend, как это было сделано в другом ответе?

Также Олег упомянул в своем примере кодаmyGrid[0].endReq(); и я не могу найти упоминания об этом в документации - существует ли эта функция?

Ответы на вопрос(1)

Ваш ответ на вопрос