在 ExtJs 4.1 中选择树面板的第一个叶节点

Posted

技术标签:

【中文标题】在 ExtJs 4.1 中选择树面板的第一个叶节点【英文标题】:Selecting the first leaf node of a tree panel in ExtJs 4.1 【发布时间】:2014-01-10 10:33:55 【问题描述】:

我正在使用 ExtJs 4.1 TreePanel 控件。当用户单击按钮时,我想选择树面板的第一个叶节点,然后触发 select 或 itemClick 事件。获得预期结果的最佳方法是什么。

到目前为止,我正在使用此代码:

 var root = Ext.getStore('MyStore').getRootNode();
 var firstChildNode = root.findChild('leaf', true, true);
 Ext.getCmp('treePnl').getSelectionModel().select(firstChildNode);

有没有更好的方法在 ExtJs 树面板中选择一个节点以及如何触发树面板的 select 或 itemClick 事件?

谢谢!!!

【问题讨论】:

【参考方案1】:
var root = Ext.getStore('MyStore').getRootNode(),
    tree = Ext.getCmp('treePnl'),
    selModel  = tree.getSelectionModel();

selModel.select(root.firstChild);

tree.fireEvent('itemselect', root.firstChild);

【讨论】:

【参考方案2】:

如果“叶子”在树的更下方,我使用了以下内容 工作解决方案:

// select first leaf
var item = tree.getRootNode();
while(item.firstChild)
     item = item.firstChild; 

tree.getSelectionModel().select(item);

【讨论】:

以上是关于在 ExtJs 4.1 中选择树面板的第一个叶节点的主要内容,如果未能解决你的问题,请参考以下文章

在 ExtJs 4.1 树面板中通过 id 或 name 查找节点

ExtJS4 树面板问题

在 ExtJs 4.0 TreePanel 中更改文件夹和叶子节点的顺序

ExtJs 树面板。如何滚动到节点

ExtJs 4.1-通过单击另一个视图中的树节点将选项卡添加到选项卡视图

使用 preloadChildren false 在 ExtJS 树面板之间拖放