gpt4 book ai didi

javascript - 在 ExtJs 树中搜索节点

转载 作者:行者123 更新时间:2023-11-28 11:24:34 25 4
gpt4 key购买 nike

我想在 ExtJs 树中搜索特定节点。我当前的代码允许仅在第一级搜索节点。请检查这个fiddle

var store = Ext.create('Ext.data.TreeStore', {
root: {
expanded: true,
children: [{
text: "Javascript",
leaf: true
}, {
text: "ASP.net",
leaf: true
}, {
text: "Also ASP.net",
leaf: false,

children: [{

text: '1.1 foo',
leaf: false,
children: [{

text: "1.1.1 asp.net mvc",
expanded: true
}, {

text: "1.1.2 java",
expanded: true
}, {

text: "1.1.3 extjs",
expanded: true
}]
}, {

text: '1.2 bar',
leaf: true
}]

}, {
text: "ASP.net future",
leaf: true
}]
}
});

Ext.create('Ext.tree.Panel', {
title: 'Example Tree',
width: 200,
height: 450,
store: store,
rootVisible: false,
multiSelect: true,
renderTo: Ext.getBody(),
dockedItems: [{
xtype: 'toolbar',
dock: 'bottom',
items: [{
text: 'Search for ASP.net',
handler: function () {
var me = this,
panel = me.up('panel'),
rn = panel.getRootNode(),
regex = new RegExp("ASP.net");

rn.findChildBy(function (child) {
var text = child.data.text;
if (regex.test(text) === true) {
console.warn("selecting child", child);
panel.getSelectionModel().select(child, true);
}
});
}
}]
}]
});

我想要什么:

  1. 能够在树中的所有级别进行搜索
  2. 一旦找到节点,我就想扩展它。

我怎样才能实现这个目标?

谢谢

最佳答案

你可以使用这个:

 var c = rn.findChild("text","Also ASP.net",true);
c.expand();

true indicates a deep search.Please have a look at findChild.

请查看fiddle

关于javascript - 在 ExtJs 树中搜索节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com