Dojo Gridx с JsonStore

Я пытаюсь подключить сетку Gridx к JsonStore. Код и данные ниже. Проблема в том, что Gridx отображается правильно, но говорит: Нет элементов для отображения. Кто-нибудь знает, что я делаю неправильно? Dojo и Gridx — это последние версии, установленные вместе с cpm.

редактировать: в инструментах разработки Firebug/Chrom нет запроса ajax на /test/

structure: [
        { field: 'id', name: 'Id' },
        { field: 'title', name: 'Title' },
        { field: 'artist', name: 'Artist' }
    ],

store: new JsonRestStore({
        idAttribute: 'id',
        target: '/test/'
    }),

Данные, возвращаемые /test, выглядят следующим образом:

{
    identifier: "id",
    label: "title",
    items: [
    {
        id: 1,
        title: "Title 1",
        artist: "Artist 1"
    },
    {
        id: 2,
        title: "Title 2",
        artist: "Artist 2"
    },
    ...
}

Сетка создается с помощью:

this.grid = new Grid({
    structure: structure,
    store: store,

    modules: [
        Pagination,
        PaginationBar,
    //Focus,
        SingleSort,
        ToolBar
    ],

    //paginationInitialPage: 3,
    paginationBarSizes: [10, 25, 50, 100],
    paginationBarVisibleSteppers: 5,
    paginationBarPosition: 'bottom'
}, this.gridNode);

person redman    schedule 14.05.2012    source источник


Ответы (2)


Вы указали, какой кеш использовать? В вашем случае это должен быть асинхронный кеш.

require([
    'gridx/core/model/cache/Async',
   .....
], function(Cache, ...){

this.grid = new Grid({
    cacheClass: Cache,
    ......
});
person Oliver    schedule 28.05.2012

Я обнаружил, что это происходит, когда сервер не возвращает заголовок Content-Range в ответе. Очевидно, магазин недостаточно умен, чтобы просто подсчитывать элементы в возвращаемом массиве...

person craigforster    schedule 25.06.2012
comment
Это дизайнерское решение. Это редко используемая функция для ответа JSON, используемая скорее при загрузке больших данных. - person Danubian Sailor; 17.07.2013