从ExtJS 3.0迁移到4.0

时间:2012-01-02 06:08:39

标签: javascript extjs

以前在ext 3.0中,我们使用XML响应构建了Tree Panel。 为此我们有自定义类扩展'Ext.tree.TreeLoader' 这个TreeLoader对于构建树结构(父/子节点)非常有用。

迁移到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>

感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

您需要查看TreeStore,它与任何标准代理(以及您的情况下的XmlReader)一起替换Ext 4中的TreeLoader .TreeStore包含已经过的标准模型实例(即记录)由NodeInterface类修饰以提供特定于树的行为。 API现在与标准存储/记录API非常相似,不像3.x中的TreeLoader是完全独立的。

请查看tree examples,特别是您案例中的XML tree example,以供使用。

答案 1 :(得分:1)

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

示例代码:

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