Javascript ExtJs树中节点的搜索
我想在ExtJs树中搜索特定节点。我拥有的当前代码只允许在第一级搜索节点。请检查这个 我想要的是: 能够在树中的所有级别进行搜索 一旦找到一个节点,我想展开它。 我怎样才能做到这一点 谢谢你你可以用这个:Javascript ExtJs树中节点的搜索,javascript,extjs,extjs4.1,Javascript,Extjs,Extjs4.1,我想在ExtJs树中搜索特定节点。我拥有的当前代码只允许在第一级搜索节点。请检查这个 我想要的是: 能够在树中的所有级别进行搜索 一旦找到一个节点,我想展开它。 我怎样才能做到这一点 谢谢你你可以用这个: var c = rn.findChild("text","Also ASP.net",true); c.expand(); true表示深入搜索。请查看 请查看这是我要找的: 感谢Devendra提出深度搜索选项 var store = Ext.create('Ext.data.Tre
var c = rn.findChild("text","Also ASP.net",true);
c.expand();
true表示深入搜索。请查看
请查看这是我要找的: 感谢Devendra提出深度搜索选项
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",
leaf: true,
expanded: true
}, {
text: "1.1.2 java",
leaf: true,
expanded: true
}, {
text: "1.1.3 extjs",
leaf: true,
expanded: true
}]
}, {
text: '1.2 bar',
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");
//var c = rn.findChild("text", " asp.net", true);
rn.findChildBy(function (child) {
var text = child.data.text;
if (regex.test(text) === true) {
console.warn("selecting child", child);
panel.getSelectionModel().select(child, true);
}
});
}
}]
}]
});
感谢您的快速回复,但我仍然无法在2-3级搜索节点。它将在任何级别搜索节点。它可以工作。唯一的问题是它不会扩展。为此,您需要检查各种条件,例如;1.叶节点,2.它是否有父节点。我不确定我是否遵循。如果一个节点是叶节点,需要做什么;如果一个节点是父节点,需要做什么?请检查此提琴:我无法在较低级别搜索。您的提琴与您上面发布的代码不同。正确的代码是什么?
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",
leaf: true,
expanded: true
}, {
text: "1.1.2 java",
leaf: true,
expanded: true
}, {
text: "1.1.3 extjs",
leaf: true,
expanded: true
}]
}, {
text: '1.2 bar',
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");
//var c = rn.findChild("text", " asp.net", true);
rn.findChildBy(function (child) {
var text = child.data.text;
if (regex.test(text) === true) {
console.warn("selecting child", child);
panel.getSelectionModel().select(child, true);
}
});
}
}]
}]
});