Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Фильтрация дерева, Фильтрация дерева осуществляется по корн 
:(
    Опции темы
ICEMAN3141592
  Дата 24.1.2012, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Здравствуйте. Делаю фильтрацию дерева на ExtJs 3.4, но не получается что-то. Из примеров нашел только для ExtJs.Net
Пример для Ext.Net

Код

var triggerField = new Ext.form.TriggerField({
    fieldLabel: 'Поиск',
    triggerClass: 'x-form-search-trigger',
    enableKeyEvents: true
});
//---------------------------------------------------------------
// toolbar дерева, оно большое, поэтому только часть
tbar: {
    items: [
        {
            xtype: 'tbtext',
            text: 'Поиск'
        },
        {
            xtype: 'tbspacer'
        },
        triggerField
    ]  
}
//---------------------------------------------------------------
triggerField.on('keyUp',
                function(element, event) {
                    var text = element.getRawValue();
                    if (Ext.isEmpty(text, false)) {
                        return;
                    }
                     
                    if (event.getKey() === Ext.EventObject.ESC) {
                        element.onTriggerClick();
                    } else {
                        var regExp = new RegExp(".*" + text + ".*", "i");
                        var treeFilter = new Ext.tree.TreeFilter(tree);
                        // Если название отдела
                        if (isNaN(parseInt(text))) {
                             
                            treeFilter.filterBy(function (node) {
                                return regExp.test(node.text);
                            });
                        } else {
                            treeFilter.filterBy(function (node) {
                                return regExp.test(node.id);
                            });
                        }
                    }
                },
                triggerField,
                { buffer: 100 }
);
//---------------------------------------------------------------             
triggerField.onTriggerClick = function(event) {
    this.setValue("");
    //tree.collapseAll();
    tree.getRootNode().expand();
    tree.expandAll();
//  tree.getRootNode().ensureVisible();
};


фильтрацию делаю по тексту узлов, так и по id.
Проблема в том, что фильтруются те узлы корня, у которых в названии есть последовательность букв совпадающая с некоторой последовательностью в названии корня. Если введенный текст имеется в корне, то отображается корень И его узлы, если в них присутствует текст. Если корень не имеет введенного текста, то ничего не отображается, даже если дочерние узлы и имеют совпадение.
Проблема 
PM MAIL   Вверх
ICEMAN3141592
Дата 24.1.2012, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Просмотры растут, а ниодного ответа  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0772 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.