2012-01-02 106 views
5

以前在ext 3.0中,我们使用XML响应构建了Tree Panel。 对于我们有自定义类扩展'Ext.tree.TreeLoader' 这个TreeLoader是建立树结构(父/子节点)有用。从ExtJS 3.0迁移到4.0

迁移到4.0时发现TreeLoader类缺失。 有没有替代这个类或任何其他方式来构建树结构?

我想生成以下XML树结构: 其实,我想从这个XML构建树结构:

<?xml version='1.0' ?> 
<Root> 
<Folder> 
<CreateDate>Apr 29, 2011</CreateDate> 
<CreatedBy>1000</CreatedBy> 
<Files/> 
<FolderName>Testing</FolderName> 
<FolderNamePath/> 
<FolderPath/> 
<Folders> 
<Folder> 
<CreateDate>Apr 6, 2011</CreateDate> 
<CreatedBy>1000</CreatedBy> 
<Files/> 
<FolderName>JayM</FolderName> 
<Folders> 
<Folder> 
<CreateDate>Apr 6, 2011</CreateDate> 
<CreatedBy>1000</CreatedBy> 
<Files/> 
<FolderName>JaM</FolderName> 
<Id>2000</Id> 
<ModDate>Dec 30, 2011</ModDate> 
<ParentFolderId>1948</ParentFolderId> 
</Folder> 
</Folders> 
<Id>1948</Id> 
<ModBy>1000</ModBy> 
<ModDate>Dec 30, 2011</ModDate> 
<ParentFolderId>1</ParentFolderId> 
</Folder> 

<Folder> 
<CreateDate>Dec 2, 2011</CreateDate> 
<CreatedBy>1000</CreatedBy> 
<Files/> 
<FolderName>demo folder</FolderName> 
<Folders/> 
<Id>2427</Id> 
<ModBy/> 
<ModDate/> 
<ParentFolderId>1</ParentFolderId> 
</Folder> 

</Folders> 
<Id>1</Id> 
<ModBy/> 
<ModDate/> 
<ParentFolderId/> 
</Folder> 
</Root> 

任何帮助表示赞赏。

回答

3

你要考虑的TreeStore,它与任何标准代理(加上你的情况的XmlReader)一起,在内线4 TreeStore更换TreeLoader包含标准型实例(即记录)已被NodeInterface类修饰以提供特定于树的行为。现在API与标准存储/记录API非常相似,不同于3.x中的TreeLoader,它完全独立。

看看tree examples,尤其是XML tree example你的情况,以供使用。

+0

谢谢bmoeskau!你能给出除Sencha Docs以外的任何TreeStore示例吗? – 2012-01-02 10:44:19

+0

请参阅上面的示例链接 – 2012-01-02 15:19:23

1

在ExtJS 4中,您使用树面板而不是树加载器来构建树结构(父/子节点)。

示例代码:

var treepanel = Ext.create('Ext.tree.Panel',{ 
id : 'tree', 
width : 300, 
height : 300, 
store : testStore, 
rootVisible : false 
}); 
+0

树面板同时存在于分机3和4中,与加载数据无关。加载从TreeLoader更改为TreeStore +代理。 – 2012-01-02 07:47:43