我一直無法使動態樹形網格顯示,因爲它應該 - 網格後面的數據正在工作,我可以看到打印到FireBug控制檯的結果。然而,ExtJS Tree Grid沒有顯示任何內容,除了在存儲中靜態設置的根節點之外沒有任何內容。ExtJS 4.0.7:樹形網格不顯示
的視圖:
Ext.define('TS.view.file.archives.raGrid', {
extend: 'Ext.tree.Panel',
alias: 'widget.ramaingridpanel',
id: 'raGrid',
autoScroll: true,
store: 'file.archives.Resources',
layout: {
type: 'hbox',
align: 'top',
pack: 'start'
},
columns: [{
xtype: 'treecolumn',
id: 'raGridResourceName',
flex: 2,
dataIndex: 'text',
width: 100,
hideable: false,
groupable: false,
text: 'Name',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'templatecolumn',
id: 'raGridResourceIcon',
tpl: new Ext.XTemplate('<div id="{iconCls}" class="{iconCls}" role="presentation"> </div>').html,
flex: 0.1,
dataIndex: 'iconCls',
hideable: false,
groupable: false,
editor: {
xtype: 'combobox',
store: Ext.data.StoreManager.lookup('file.archive.ResourceIcons')
}
}, {
xtype: 'datecolumn',
id: 'raGridDate',
flex: 1,
dataIndex: 'updated',
hideable: false,
groupable: false,
text: 'Updated'
}, {
xtype: 'gridcolumn',
id: 'raGridPurchasingUnit',
flex: 1,
dataIndex: 'purchasedUnit',
groupable: false,
text: 'Unit',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridCost',
flex: 1,
dataIndex: 'purchasedCost',
groupable: false,
text: 'Cost excl. VAT',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridDiscount',
dataIndex: 'purchasedDiscount',
flex: 1,
groupable: false,
text: 'Discount %',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'gridcolumn',
id: 'raGridEstimatingUnit',
flex: 1,
dataIndex: 'estimateUnit',
groupable: false,
text: 'Unit',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridAddOn',
flex: 1,
dataIndex: 'profitAddOn',
groupable: false,
text: 'Mark-up %',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridLanded',
flex: 1,
dataIndex: 'landedCost',
groupable: false,
text: 'Landed cost',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridCostPrice',
flex: 1,
dataIndex: 'number',
groupable: false,
text: 'Costprice',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raGridUnitCorrelation',
flex: 1,
dataIndex: 'unitCorrelation',
groupable: false,
text: 'Prch./Est.',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'numbercolumn',
id: 'raLeadTime',
flex: 1,
dataIndex: 'leadTime',
groupable: false,
text: 'Leadtime',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'gridcolumn',
id: 'raGridClass',
flex: 1,
dataIndex: 'ResourceClassShortname',
groupable: false,
text: 'Class',
editor: {
xtype: 'textfield'
}
}, {
xtype: 'gridcolumn',
id: 'raGridSupplier',
flex: 1,
dataIndex: 'supplierName',
groupable: false,
text: 'Supplier',
editor: {
xtype: 'textfield'
}
}],
viewConfig: {
id: 'raGridView'
},
plugins: [{
ptype: 'rowediting',
autoCancel: false,
clicksToEdit: 2
}, {
ptype: 'gridviewdragdrop',
ddGroup: 'raDdGroup'
}]
});
商店:
Ext.define('TS.store.file.archives.Resources', {
extend: 'Ext.data.TreeStore',
alias: 'store.file.archives.Resources',
model: 'TS.model.file.archives.Resources',
autoLoad: false,
proxy: {
type: 'ajax',
url: 'index.php/ajax/resources/',
reader: {
type: 'json',
root: 'results',
successProperty: 'success',
totalProperty: 'total'
}
},
root: {
text: 'Resources',
id: 'myResources',
expanded: true,
children: {}
}
});
模型:
Ext.define('TS.model.file.archives.Resources', {
extend : 'Ext.data.Model',
alias : 'model.file.archives.Resources',
fields : [ {
name : 'id',
type : 'int'
}, {
name : 'parent_id',
type : 'int'
}, {
name : 'child_id',
type : 'int'
}, {
name : 'text',
type : 'string'
}, {
name : 'updated',
type : 'date'
}, {
name : 'purchasedUnit',
type : 'string'
}, {
name : 'purchasedCost',
type : 'double'
}, {
name : 'purchasedDiscount',
type : 'double'
}, {
name : 'estimateUnit',
type : 'string'
}, {
name : 'profitAddOn',
type : 'string'
}, {
name : 'addonManager',
type : 'string'
}, {
name : 'landedCost',
type : 'double'
}, {
name : 'unitCorrelation',
type : 'double'
}, {
name : 'leadTime',
type : 'string'
}, {
name : 'ResourceClassShortname',
type : 'string'
}, {
name : 'supplierName',
type : 'string'
}, {
name : 'iconCls',
type : 'string'
}, {
name : 'ClientSessionId',
type : 'string'
} ]
});
JSON數據:
({
"success":"true",
"total":"1",
"results":
[{
"id":0,
"parent_id":0,
"child_id":2,
"text":"Gravemaskiner",
"updated":1339079129,
"purchasedUnit":"",
"purchasedCost":0,
"purchasedDiscount":0,
"estimateUnit":"",
"profitAddOn":"",
"landedCost":0,
"unitCorrelation":0,
"leadTime":"",
"ResourceClassShortname":"",
"supplierName":"",
"iconCls":"iconFolder",
"leaf":false,
"children":...
如果有人會這麼好心的點出了什麼錯我的代碼,將是巨大的,
G.
使用的ExtJS 4.0.7
更新:2012-06- 19
一直在測試了很多,這個錯誤似乎有什麼東西,用它做的,但我不知道這意味着什麼,如何解決這個問題:
records[i] is undefined
/extjs/ext-all-dev.js Line 88068
已打印的對象來安慰他們清楚地顯示在存儲中的數據。
我有一種感覺,我在我的控制器中丟失了一些東西。我已經找到了這個代碼'settingsTreeStore.getRootNode()。appendChild(userTreeStore.getRootNode())。expand();'在另一個網站上 - 我如何將它添加到我的當前控制器?一些代碼可能觸發gridview的'afterload'? – rnngau
如果可以的話,你應該使用最新的代碼。 4.0.7很爛 –
我從4.1.0中收到很多錯誤。顯然有事要做XTemplate等。 – rnngau