Extjs4 - как сгенерировать сетку из возвращенного json? - PullRequest
1 голос
/ 24 октября 2011

У меня есть форма и сетка для отправки запроса, например:

items:[  
{  
     fieldLabel: 'query the month',  
     xtype     : 'textfield',  
     name      : 'query_year_month',  
     id:   'query_year_month'  
} ],  

buttons:  {  
    text: 'submit',  
    formBind: true, //only enabled once the form is valid  
    disabled: false,
    handler: function() {
        //some code         
        }

var store = Ext.create('Ext.data.Store', {
        model: //uncertain,
        region : 'south',
        pageSize: 15,

        proxy: {
            type: 'ajax',
            url : 'brokee/brokagequery/',
            reader: {
            type: 'json',
            root: 'users'
            }
        },

        autoLoad: false    
});

Я бы хотел загрузить данные в сетку после отправки формы. Возвращаемые данные - json
структура, я не хочу определять привязку статической модели к хранилищу и столбцам сетки, потому что возвращаемые данные не определены. Модель магазина и столбцы сетки должны быть сгенерированы из данных JSON, например: json: {'field1': data1, 'field2': data2} модель должна быть сгенерирована так:

Ext.define('somemodel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'field1', type: 'string'},
        {name: 'field2', type: 'string'}
               ]
});

В официальной демонстрации предварительно определены магазин и модель, затем вызовите метод store.load, чтобы обновить сетку через прокси. Но как я могу это сделать, когда необходимо сгенерировать магазин и модель?

1 Ответ

0 голосов
/ 27 октября 2011

Когда у вас есть загруженный json, вы можете создать магазин / модель магазина следующим образом ... используйте запись .raw для извлечения значений и:

Ext.create("Ext.data.JsonStore",{
    id:record.raw.storeID,
    model: Ext.define('App.dataGridModel', {
        extend: 'Ext.data.Model',
        fields: [record.raw.id, record.raw.first]...
    })
...

});

то же самое с сеткой и т.д ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...