ExtJS 4.0.7:未显示树网格
我一直无法使动态树网格按应有的方式显示-网格背后的数据正在工作,我可以看到结果打印到FireBug控制台。然而,除了在存储中静态设置的根节点之外,ExtJS树网格中没有显示任何节点 观点:ExtJS 4.0.7:未显示树网格,extjs,extjs4,treegrid,Extjs,Extjs4,Treegrid,我一直无法使动态树网格按应有的方式显示-网格背后的数据正在工作,我可以看到结果打印到FireBug控制台。然而,除了在存储中静态设置的根节点之外,ExtJS树网格中没有显示任何节点 观点: Ext.define('TS.view.file.archives.raGrid', { extend: 'Ext.tree.Panel', alias: 'widget.ramaingridpanel', id: 'raGrid', autoScroll: true,
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.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
使用ExtJS4.0.7
更新:2012-06-19 进行了大量测试,这个错误似乎与此有关,但我不确定它的含义以及如何解决它:
记录[i]未定义
/extjs/ext-all-dev.js行88068
已将对象打印到console,并且它们清楚地显示了存储中的数据
您的读者需要这样定义:
reader : {
type : 'json',
root : 'children',
successProperty : 'success',
totalProperty : 'total'
}
您的json根目录应该从
results
更改为children
Sencha支持人员回复如下:
树未正确加载的原因是json对树摘要无效
问题在于JSON——它是如何生成的:
// I used this:
$result[$i] = $newArray;
// To fix I had to use this to generate the JSON
array_push($result,$newArray);
以及:
我确实注意到您的原始json,它被包装在“()”中,这是不正确的
我确实有一种感觉,我的控制器缺少了一些东西。我找到了以下代码
settingsTreeStore.getRootNode().appendChild(userTreeStore.getRootNode()).expand()代码>在另一个站点上-如何将其添加到当前控制器中?可能需要一些代码来启动gridview的后加载
?如果可以,您应该使用最新的代码。4.0.7糟透了我从4.1.0中得到了很多错误。显然,XTemplate和诸如此类的.XTemplate错误:maxLength未定义del为null extjs-4.1.0/ext-all-dev.js行19836更改了json根和读取器定义,但尚未工作。
// I used this:
$result[$i] = $newArray;
// To fix I had to use this to generate the JSON
array_push($result,$newArray);