dgrid 1.2.1 OnDemandGrid не запускает запрос при прокрутке - PullRequest
0 голосов
/ 05 сентября 2018

Я использую dgrid 1.2.1 OnDemandGrid, и с ним попробовал оба dstore 1.1.1 и 1.1.2 (Rest, SimpleQuery, Trackable). Кажется, что бы я ни пытался, я не могу заставить виртуальную прокрутку работать.

Мой магазин определен как:

seStore = new declare([Rest, SimpleQuery, Trackable])({
    target: appUrl + "api/GET_ITEMS",
    idProperty: "SID",
    sortParam: "sort",
    useRangeHeaders: true  
});

Для магазина определен метод сортировки и фильтрации:

seStore.getSECollection = function (sortFieldName, desc) {
    var sFilter = {};
    if (sArea != "") {
        sFilter.AREA = sArea;
    }
    var coll = seStore.filter(sFilter).sort({ property: sortFieldName, descending: desc });

    return coll;
}

Сетка:

// Create a Grid instance 
seGrid = new (declare([OnDemandGrid, Selection, DijitRegistry, Selector, Keyboard, Editor, ColumnHider, ColumnResizer, ColumnReorder]))({
    id: "seGrid",
    idProperty: "SID",
    cellNavigation: true,
    columns: seColumns,
    collection: seStore.getSECollection("SID", true),
    region: 'center',
    selectionMode: "multiple",
    keepScrollPosition: true,
    query: { responseType: "json" },
    getBeforePut: false,
    farOffRemoval: Infinity, // larger than total height of data; never remove rows
    minRowsPerPage: 25, // request more data at a time
    maxRowsPerPage: 50,
    pagingMethod: 'throttleDelayed',
    queryRowsOverlap: 0,
    //loadingMessage: "Loading data...",
    noDataMessage: "No results found.",
    showFooter: true
});

И ответ службы REST бэкэнда дает правильный ответ, где rItems - это массив элементов из запроса к моей базе данных, а rTotal - общее количество элементов в базе данных для этого запроса:

HttpResponseMessage rm = new HttpResponseMessage(HttpStatusCode.OK);
string dgrJsonResults = Newtonsoft.Json.JsonConvert.SerializeObject(rItems, Formatting.None);
rm.Content = new StringContent(dgrJsonResults, System.Text.Encoding.UTF8);
rm.Content.Headers.ContentRange = new ContentRangeHeaderValue((long)start, (long)count, rTotal) { Unit = "items" };

Сетка изначально корректно загружается с первыми 25 запрошенными элементами, но после этого первоначального запроса, когда я прокручиваю вниз (элемент 25), запрос на получение следующего диапазона данных не запускается.

Может кто-нибудь, пожалуйста, помогите указать мне правильное направление?

...