2012-01-02 3 views
5

Ранее в ext 3.0 у нас была панель Tree, построенная из XML-ответа. Для этого у нас был пользовательский класс, расширяющий '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 в вашем случае), заменил TreeLoader в Ext 4. TreeStore содержит стандартную модель экземпляры (т. е. записи), которые были украшены классом NodeInterface, чтобы обеспечить поведение, специфичное для дерева. API теперь очень похож на стандартный API хранения/записи, в отличие от TreeLoader в 3.x, который был полностью разделен.

Посмотрите на tree examples, в частности XML tree example в вашем случае, для использования.

+0

Спасибо, bmoeskau! можете ли вы представить какой-либо пример TreeStore, отличный от Sencha Docs? –

+0

См. Пример ссылок выше –

1

В ExtJS 4 у вас есть дерево панели вместо загрузчика дерева для создания древовидной структуры (родительские/дочерние узлы).

Пример кода:

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

Панель дерева существует как в Ext 3, так и 4 и не имеет ничего общего с загрузкой данных. Погрузка изменилась с TreeLoader на TreeStore + proxy. –

Смежные вопросы