回答
在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