ExtJS:创建动态存储\grid
大家好,我正在使用一个动态存储,我从数组中获取数据 并创建一个存储,但如果我尝试将列和数据加载到我的网格,我会得到未捕获的TypeError:无法读取未定义的属性“getProxy” 控制器: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
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时,我都必须创建一个网格