ExtJS:创建动态存储\grid

ExtJS:创建动态存储\grid,extjs,dynamic,proxy,grid,store,Extjs,Dynamic,Proxy,Grid,Store,大家好,我正在使用一个动态存储,我从数组中获取数据 并创建一个存储,但如果我尝试将列和数据加载到我的网格,我会得到未捕获的TypeError:无法读取未定义的属性“getProxy” 控制器: onSqlChange: function (gridPanel, value) { var me = this; Ext.Ajax.request({ url: '{url action=getSqlDetails}', params: { fileName: value

大家好,我正在使用一个动态存储,我从数组中获取数据 并创建一个存储,但如果我尝试将列和数据加载到我的网格,我会得到未捕获的TypeError:无法读取未定义的属性“getProxy”

控制器:

  onSqlChange: function (gridPanel, value) {
var me = this;

Ext.Ajax.request({
    url: '{url action=getSqlDetails}',
    params: {
    fileName: value
    },
    success: function (response) {
    var text = JSON.parse(response.responseText);
    //console.log(text);
    var grid = me.mainWindow.grid;
    var columns = text.columns;
    var cols = new Array();
    columns.forEach(function (item) {
        cols.push({
        name: item,
        type: 'string'
        });
    });

    var SqlResult = Ext.create('Ext.data.Store', {
        fields: cols,
        proxy: {
        type: 'ajax',
        url: '{url action=getSqlDetails}',
        reader: {
            type: 'json',
            root: 'data'
        }
        },
    });

    grid.reconfigure({
        columns: columns,
        store: SqlResult
    });
    grid.show();
    }
});
}
window.js:

Ext.define('Shopware.apps.UnSqlReader.view.window.Window', {
extend: 'Enlight.app.Window',
alias: 'widget.main-window-view',
height: 700,
width: 1200,
layout: 'fit',
title: '{s name=window_title}SQL Reader{/s}',
initComponent: function () {
var me = this;
me.items = me.getItems();
me.dockedItems = me.createDockedItems();
me.callParent(arguments);
},
createDockedItems: function () {
var me = this;
return [
    {
    width: 185,
    xtype: 'toolbar',
    dock: 'top',
    items: [
        {
        xtype: 'combobox',
        id: 'sqlField',
        editable: false,
        emptyText: 'Select SQL file',
        displayField: 'name',
        valueField: 'name',
        store: Ext.create('Shopware.apps.UnSqlReader.store.UnSqlReaderFileList'),
        listeners: {
            change: function (field, newValue) {
            me.fireEvent('onSqlChange', me, newValue);
            }
        }
        }
    ]
    }
];
},
getItems: function () {
var me = this;
me.grid = Ext.create('Ext.grid.Panel', {
    alias: 'widget.view-grid-grid',
    hidden: true,
    columns: [
    ]
});
return [me.grid];
}

})

不用再次调用ajax,我们可以使用响应json中的text.data直接填充存储区中的数据

var SqlResult = Ext.create('Ext.data.Store', {
        fields: cols,
        data:text.data
    });

我们可以通过访问text.data来获取数据吗?是的,可能重复的不起作用,获取返回,但如果我想在存储中使用它,var data=text.data;数据:数据获取与未定义相同的错误我是否在网格中定义了存储我的窗口js?否网格仍然为空:/as错误我获取以下消息:Uncaught TypeError:a.on不是函数,我无法使用define。。每次onSqlChange时,我都必须创建一个网格