Сетка Extjs 6.2, динамически создавать столбцы из магазина - PullRequest
0 голосов
/ 04 октября 2018

В моем проекте extjs 6.2 я пытаюсь создать столбцы для моей сетки из магазина, который является динамическим.

Моя сетка создается на странице просмотра

            title: 'Data Viewer',
        xtype: 'grid',
        itemId: 'gridDataViewerId',
        bind: {
            store: '{storeData}'
        },
        ui: 'featuredpanel-framed',
        cls: 'custom-grid',            
        margin: '5',
        //frame: false,
        //forceFit: true,
        //height: '100%',
        flex: 1,
        plugins: [{
            ptype: 'gridexporter'
        }]

Как только магазинзагружен Я пытаюсь создать столбцы и заполнить данные, но это не работает.Есть идеи, что я делаю не так?

        this.storeData.load({
        url: x.util.GlobalVar.urlData_getData,
        params: {
            cid: cid,
            email: localStorage.getItem('username'),
            dateStart: targetStart,
            dateEnd: targetEnd,
            filename: targetFile
        },
        callback: function (response, opts) {
            debugger;

            var columnModel = me.storeData.data.items;                
            me.myGrid.reconfigure(me.storeData, columnModel);
        }
    });

Я думаю, что моя проблема заключается в создании массива столбцов из моего магазина.Если я пытаюсь сделать это вручную, это работает ... но мне нужно сделать это динамически.

1 Ответ

0 голосов
/ 05 октября 2018

Используйте metachange слушателя магазина.Примерно так:

myStore.on('metachange', function(store, meta){
    myGrid.reconfigure(store, meta.columns);
}

Где данные хранилища выглядят примерно так:

{
    "records": [{
        "id": 74474,
        "name": "blah",
        "age": 5
    },{
        "id": 74475,
        "name": "asfdblah",
        "age": 35
    }],
    "totalRecords": 2,
    "metaData": {
        "fields": [{
            "name": "name"
        },{
            "name": "age",
            "type": "number"
        }],
        "columns": [{
            "text": "Name",
            "dataIndex": "name",
            "width": 150
        },
        {
            "text": "Age",
            "dataIndex": "age"
        }],
    },
    "success": true
}
...