redman
redman

Reputation: 2165

Dojo Gridx with JsonStore

I'm trying to connect Gridx grid to JsonStore. The code and data is bellow. The problem is that Gridx is rendered correctly but it says: No items to display. Anybody know what I'm doing wrong? Dojo and Gridx are the latest versions installed with cpm.

edit: there is no ajax requet to /test/ in the Firebug/Chrom development tools

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

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

Data returned by /test is like this:

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

Grid is created with:

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);

Upvotes: 2

Views: 2967

Answers (2)

craigforster
craigforster

Reputation: 2669

I've found that this happens when the server doesn't return the Content-Range header in the response. Apparently the store isn't smart enough to just count the items in the returned array...

Upvotes: 1

Oliver
Oliver

Reputation: 43

have you specified which cache to use? In your case it should be an Async cache.

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

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

Upvotes: 1

Related Questions