extjs:如何用树节点的直接子节点填充组合框?

时间:2009-10-10 02:48:57

标签: javascript extjs

我有一个树和一个组合框。

  1. 我需要获取节点1的直接子节点并将它们放在组合框中。

  2. 从组合框列表中选择节点时,树应仅显示该节点及其子节点。

  3. 基本上,组合框用作仅显示特定节点的过滤器。除了所选节点之外的所有节点都是隐藏的。

    任何帮助将不胜感激。

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);
        }
    });
},