2012-05-14 2 views
2

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

редактирование: нет Аякса requet к/тесту/в Firebug/инструменты развития Chrom

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

store: new JsonRestStore({ 
     idAttribute: 'id', 
     target: '/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); 

ответ

1

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

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

this.grid = new Grid({ 
    cacheClass: Cache, 
    ...... 
}); 
1

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

+0

Это дизайнерское решение. Это редко используемая функция для ответа JSON, используемая, скорее, путем загрузки больших данных –