我有一個基本的ExtJS問題,根據閱讀文檔和搜索,我似乎無法解決這個問題。目前我有一個TreePanel直接從URL加載JSON。我試圖從視圖中分離數據,以便我還可以使用該數據將數據提供給OpenLayers地圖(使用GeoExt)。如何將TreePanel指向Ext.data.Store而不是URL?樹的ExtJS數據存儲
回答
TreePanels使用TreeLoaders而不是Stores來加載數據。原因是樹需要分層數據,而存儲是平坦的表結構,不支持層次結構。基本數據對象也不同(記錄與節點)。當然,您可以使用父/子密鑰將自己的分層數據存儲在商店中,但此時沒有內置Ext組件的任何內容。如果您嘗試緩存樹數據,則可能需要爲此推出自己的解決方案。
編輯:現在Ext 4出來了,這個答案只適用於Ext 3。Ext 4現在有一個(大部分)統一的數據模型,並且樹使用TreeStore(具有應用於模型的附加NodeInterface),不再有一個單獨的TreeLoader類。
感謝您回來並添加「post ExtJS 4」更新! – 2011-09-20 20:41:19
在您的TreePanel
配置中,只需指向您的數據url即可。
loader: new Ext.tree.TreeLoader({
url: '/path/to/data.json',
requestMethod: 'GET',
preloadChildren: true
})
如果你需要一個Store
這個數據,它可以通過bmoeskau指出,由於數據格式可能不同,很麻煩。
在我們的應用程序中,我們使用了一個樹面板和一個dataview的組合,兩者都對數據(使用傳統樹加載器的樹)和使用存儲的數據視圖發出請求。兩者都提交到相同的URL,是的,有兩個調用,但結果返回適當的格式化視圖參數(樹或數據視圖)和結果相同,只是裝飾不同。
這將是一個理想的呼叫,中央數據,但這似乎工作可接受。
編寫幾個函數來抽象解析(記錄到節點),並最終獲得訪問數據的一般方法。
這絕對是很多人的痛點。 Ext 4.0路線圖包含「關係型」商店,所以我們希望最終解決這個問題。 http://www.extjs.com/products/js/roadmap.php – 2010-04-09 08:35:35
- 1. ExtJS的樹存儲和數據拉
- 2. extjs 4樹存儲RESTful
- 3. extjs刷新樹存儲
- 4. ExtJS的樹不能與代理儲存
- 5. 如何使用單個數據存儲渲染多個ExtJS樹
- 6. 存儲樹數據結構
- 7. ExtJs如何動態更改樹存儲區的存儲
- 8. ExtJS圖表的動態數據存儲
- 9. ExtJS搜索數據存儲的值
- 10. 如何讀取extjs數據存儲
- 11. extjs dataview未加載數據存儲
- 12. Extjs 4數據存儲和php
- 13. 循環訪問Json數據存儲extjs
- 14. ExtJs 4.2數據存儲加載事件
- 15. ExtJS數據存儲沒有排序
- 16. 迭代數據存儲在extjs
- 17. extjs更改存儲數據時更新
- 18. ExtJS(4.1)創建靜態數據存儲
- 19. 搜索存儲在樹中的數據
- 20. 存儲樹和圖的數據?
- 21. ExtJS的4個樹存儲加載遠程數據並使用它在本地
- 22. 如何使用其他樹存儲讀取器的數據加載樹存儲
- 23. extjs數據存儲發送到服務器(數據存儲 - > json)
- 24. Google appengine數據存儲樹結構
- 25. 以樹格式存儲數據R
- 26. 如何將數據加載到樹存儲中。來自另一樹存儲的讀取器的數據
- 27. Extjs 4 Combobox數據存儲不能顯示數據
- 28. 進程extjs在接收數據後存儲代理數據
- 29. 樹(數據結構)的文檔存儲數據建模
- 30. 什麼是根參數中的extjs數據存儲
看起來情況在ExtJS 3.1中隨着TreeGrid組件的增加而改變:http://www.extjs.com/blog/2009/12/17/ext-js-3-1-massive-memory-改進 - treegrid-and-more%E2%80%A6/ – 2010-01-22 01:52:11
警告:這個問題和答案是過時的(4歲)。我希望SO有辦法歸檔這些... – HDave 2013-11-07 14:06:32