回答
在ExtJS的3.x中,你可以嘗試調用焦點()在TreeNodeUI(myNode.ui.focus())
合乎理工作對我來說,如果樹是異步加載的每一個節點,而不是滿載的是,即每個節點都加載一個接一個,並且選擇最後一個節點,但樹不滾動到選擇的節點。 –
樹是異步加載的每一個節點,你需要調用的所有節點已經被加載後,才進行對焦。你將需要做的是設置你的根節點上自動加載爲false,那麼在後面的代碼使用手動加載根節點的第一次:
rootNode.expand(true, function(){
myTreePanel.getView().focusRow(nodeyouwanttofocus);
});
做這種方式讓您使用擴展功能,使擴大完全遞歸併且還的第一個參數確保所有節點被加載之後是一個函數的第二個參數只執行,guarenteeing該視圖是正確的高度與該節點在視覺上存在。
另一種選擇,可以讓更多的flexability是掛鉤到擴展事件:
var myTreeStore = Ext.create("Ext.data.TreeStore", {
listeners: {
expand: function(theParentNode){
theParentNode.eachChild(function(node){
if(nodeIWantSelected == node)
myTreePanel.getView().focusRow(node);
}
}
}
});
,您可以使用選擇模型。選擇鉤在選擇節點(我認爲這可能集中節點也)。
我還沒有嘗試過由沙之前提出「selectPath」,這似乎是一個更容易使用,但你可以在focusRow功能回調掛鉤,我認爲這工作了。
您可以使用tree.getView().focusRow()
,喜歡它:
tree.expandPath(
'/root/1/2/3',
'id',
'/',
function() {
tree.getView().focusRow(tree.getStore().getNodeById('3'));
}
});
但是,如果你的樹使用animate: true
和異步加載每個節點與路徑中的任何節點尚未加載這個方法行不通的(樹沒有滾動到由於多個佈局更新而選擇的節點)。
至於解決方法,您可以:
- 設置
animate: false
的樹; 添加「afterlayout」監聽器,就像這樣:
tree.on('afterlayout', function() { tree.getView().focusRow(tree.getSelectionModel().getSelection()[0]); }
我想你可以在需要時添加此處理程序,並刪除它時,一切都做。
- 1. Extjs樹不會appendChold到樹面板中的選定節點
- 2. 如何突出顯示節點在extJs 4.1樹面板中
- 3. ExtJS 4 - 從不緩存樹面板中的樹節點
- 4. ExtJS 4 - 如何設置樹面板的背景(包括樹節點)
- 5. ExtJS的滾動面板
- 6. 無法滾動到樹節點
- 7. ExtJs 4.1.1樹面板節點選擇邏輯
- 8. 在ExtJs 4.1樹面板中按ID或名稱查找節點
- 9. 在ExtJs 4.1中選擇樹面板的第一個葉節點
- 10. 如何添加DOM節點到ExtJS中的面板
- 11. extjs樹面板中的滾動條不起作用
- 12. 滾動得到一個extjs 6視口滾動內部面板
- 13. 動態extjs樹面板生成問題
- 14. ExtJS的樹節點位置
- 15. ExtJS的樹面板結合
- 16. 將樹節點滾動到滾動窗格的頂部
- 17. 如何滾動到PrimeNG樹中的選定節點
- 18. ExtJS的滾動面板的位置
- 19. dynatree - 如何滾動到主動節點?
- 20. ExtJS:自動滾動垂直FormPanels添加到面板
- 21. 如何滾動滾動AccessibilityNodeInfo節點
- 22. 如何在拖動節點後將節點連接到d3樹
- 23. Extjs:將n節點樹節點及其子節點拖放到網格中
- 24. 如何在特定高度後啓用滾動EXTJS面板
- 25. 如何將滾動添加到面板
- 26. 如何將網格面板添加到extjs中樹形網格的最後一個節點
- 27. EXTJS:在右鍵單擊多選樹面板時取消選中的節點(itemcontextmenu)
- 28. extjs 4.2 treepanel bufferedRenderer滾動到特定節點
- 29. 如何在頁面加載時擴展樹面板 - EXTJS 4
- 30. ExtJS遞歸擴展樹節點
您使用的是什麼版本的ExtJs? – sha
我使用ExtJS的4.1 – Charles