我的解決方法:
首先,用一個功能集中的所有創作的東西接收數據:
function addGrid (title, data) {
var storeColumns = getStoreColumnsFromJson(data[0]);
var gridColumns = getGridColumnsFromJson(data[0]);
var store = createStore(data, storeColumns);
var grid = createGrid(title, store, gridColumns);
myContainerWindowPanel.add(grid);
}
現在,我需要一個數據樣本(第一行)來獲得列名從JSON數據到網格及其商店:
function getStoreColumnsFromJson (obj) {
var keys = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
keys.push({name : key});
}
}
return keys;
}
function getGridColumnsFromJson (obj) {
var keys = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
keys.push({text: key, dataIndex: key});
}
}
return keys;
}
現在我將創建網格和商店。我不會僅僅因爲沒有它就使用模型。如果有人有強烈的建議來創建模型,我會感激。
function createGrid (title, store, columnNames) {
var dummyGrid = Ext.create('Ext.grid.Panel', {
border: false,
title : title,
store : store,
frame: false,
margin: "10 0 0 0",
flex:1,
loadMask: true,
columns:columnNames,
autoHeight:true
});
return dummyGrid;
}
function createStore (storeData, columns) {
var arrData = [];
var theData = storeData;
if (!$.isArray(storeData)) {
arrData.push(storeData);
theData = arrData;
}
var store = Ext.create('Ext.data.Store',{
fields: columns,
autoLoad: true,
data: theData
});
return store;
}
我不認爲這是個好主意......我需要一個表格顯示的數據爲網格!不想將所有數據都放在列中。 –