extjs 4 tree通过其内部id(而不是记录索引)选择特定节点

时间:2011-06-16 14:34:59

标签: select tree extjs4 treepanel

我正在尝试将数据视图(资源管理器窗口)与树(目录树)同步。 当我点击数据视图上的元素时,我希望在树上选择相同的节点

问题是使用了 tree.getSelectionModel().select(index) 不允许我通过其内部id(我在treestore中提供的id)选择节点,但仅限于记录索引... 所以我只是无法同步两个视图...... 会有expandPath()的解决方案,但我的treestore由关系数据库(id,name,parent_id等...)提供,因此查找完整路径(或可能是)服务器的负载(I我想避免提供任何路径......)。

基本上我希望能够说“扩展”id =“(或树库的任何其他键/值)的节点。

有可能吗?有没有解决方法?

感谢您阅读我!

2 个答案:

答案 0 :(得分:9)

tree.getSelectionModel()。select(记录)函数可以接受记录实例而不是索引。我会做这样的事情:

var record = tree.getRootNode().findChild('id_name','record_id',true);
tree.getSelectionModel().select(record);

有关findChild函数的更多信息,请查看NodeInterface文档: http://docs.sencha.com/ext-js/4-0/#/api/Ext.data.NodeInterface-method-findChild

答案 1 :(得分:0)

您也可以使用selecteditemtree.data.id