Automatyczne anulowanie żądania jqgrid

Jestem świadomy tej odpowiedzi:Jak dodać przycisk anulowania do mojego jqgrid?i próbuję zaimplementować coś podobnego, chociaż bez przycisku uruchamiającego anulowanie. Iv'e dostał siatkę, która ładuje na stronie ładowanie (wyszukiwanie, które domyślnie ładuje się bez kryteriów) i chciałbym móc anulować to domyślne wyszukiwanie pustych kryteriów, gdy użytkownik faktycznie wykonuje wyszukiwanie z kryteriami. Ponieważ nie potrzebuję przycisku, staram się uprościć rozwiązanie, śledząc jedynie żądanie xhr w metodzie loadBeforeSend i przerywam to xhr, jeśli nie jest ono puste, gdy ładuję siatkę. Kod:

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: "<%= Page.Request.Path %>/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: <%= this.MultiSelect.ToString().ToLower() %>,
        multiboxonly: true
    }).setGridWidth(popWidth);
}

Mam problem z tym, że kolejne wykonanie jqGrid nie działa. Funkcja loadError jest wyzwalana z błędem (3. parametr) „przerwij”. Czy muszę zrobić coś bardziej / innego za pomocą loadBeforeSend, tak jak w drugiej odpowiedzi?

Również Oleg wspomniał w swoim przykładowym kodziemyGrid[0].endReq(); i nie mogę znaleźć żadnej wzmianki o tym w dokumentacji - czy ta funkcja istnieje?

questionAnswers(1)

yourAnswerToTheQuestion