Сетка ExtJS 4 не заполняется данными

#extjs #extjs4

#extjs #extjs4

Вопрос:

Я пытаюсь заполнить внешнюю сетку JS 4 данными json. К сожалению, независимо от того, что я делаю, она по-прежнему остается пустой. Функция JS приведена ниже:

 function buildGrid() {

Ext.define('Contact', {
    extend: 'Ext.data.Model',
    fields: ['Id', 'Name', 'State', 'Age']
});

var store = Ext.create('Ext.data.Store', {
    model: 'Contact',
    proxy: {
        type: 'ajax',
        url: 'GridData',
        reader: {
            type: 'json',
            record: 'data',
            totalProperty: 'total'
        }
    }
});

var grid = Ext.create('Ext.grid.Panel', {
    store: store,
    columns: [
        { text: "Name", flex: 1, width: 120, dataIndex: 'Name', sortable: true },
        { text: "State", width: 100, dataIndex: 'State', sortable: true },
        { text: "Age", width: 115, dataIndex: 'Age', sortable: true },
    ],
    height: 210,
    width: 600,
    split: true,
    renderTo: Ext.getBody()
}).show();

}

Ext.onReady(buildGrid);
  

Ответ сервера выглядит следующим образом:

 {"callback":"1307878654818","total":1,"data":[{"Id":"ac2bedf1-bb5c-46e0-ba50-a6628341ca25","Name":"Smith","State":"NU","Age":24}]}
  

так что все выглядит нормально. Однако в представлении сетки дата не отображается.

Кто-нибудь может увидеть, что я делаю неправильно?

Ответ №1:

Вы не указали свойство root. Попробуйте

 reader: {
            type: 'json',
            root: 'data',
            totalProperty: 'total'
        }