extjs: Как заполнить поле со списком непосредственными потомками узла дерева? - PullRequest
1 голос
/ 10 октября 2009

У меня есть дерево и поле со списком.

  1. Мне нужно получить непосредственных потомков узла 1 и поместить их в поле со списком.

  2. Когда в списке со списком выбран узел, дерево должно отображать только этот узел и его дочерние элементы.

По сути, поле со списком служит фильтром для отображения только определенного узла. Все узлы, кроме выбранного, скрыты.

Любая помощь будет оценена.

1 Ответ

1 голос
/ 01 ноября 2010

Поиск функций фильтрации в документации 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);
        }
    });
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...