我有一个树和一个组合框。
我需要获取节点1的直接子节点并将它们放在组合框中。
从组合框列表中选择节点时,树应仅显示该节点及其子节点。
基本上,组合框用作仅显示特定节点的过滤器。除了所选节点之外的所有节点都是隐藏的。
任何帮助将不胜感激。
答案 0 :(得分:1)
在Ext JS API文档中查找过滤功能。在左上角的“查找类”中,您可以通过输入字符串过滤树。我想你想要做的就是那个:
http://dev.sencha.com/deploy/dev/docs/
向下滚动到 filterTree 功能:
http://dev.sencha.com/deploy/dev/docs/resources/docs.js
filterTree: function(t, e){
var text = t.getValue();
Ext.each(this.hiddenPkgs, function(n){
n.ui.show();
});
if(!text){
this.filter.clear();
return;
}
this.expandAll();
var re = new RegExp('^' + Ext.escapeRe(text), 'i');
this.filter.filterBy(function(n){
return !n.attributes.isClass || re.test(n.text);
});
// hide empty packages that weren't filtered
this.hiddenPkgs = [];
var me = this;
this.root.cascade(function(n){
if(!n.attributes.isClass && n.ui.ctNode.offsetHeight < 3){
n.ui.hide();
me.hiddenPkgs.push(n);
}
});
},