extjs 6.2 网格,从存储中动态创建列
extjs 6.2 grid, create columns from store dynamically
在我的 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);
}
});
我认为我的问题是从我的商店创建列数组。如果我尝试手动执行它,它会工作...但我需要动态执行。
使用商店的 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
}
在我的 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);
}
});
我认为我的问题是从我的商店创建列数组。如果我尝试手动执行它,它会工作...但我需要动态执行。
使用商店的 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
}