getFilterElements(dict: PP.Rds.Dictionary, filter: Object, callback: function|PP.Delegate);
dict. Справочник НСИ;
filter. Объект с настройками фильтра;
callback. Возвратная функция.
Метод getFilterElements применяет для элементов справочника НСИ указанный фильтр.
Для выполнения примера необходимо наличие на странице компонента DictionaryBox с наименованием «dictionaryBox» (см. «Пример создания компонента DictionaryBox» ). Отфильтруем элементы справочника по строке «Секунда» и обработаем событие ChildLoaded:
// Получим справочник НСИ var source = dictionaryBox.getSource()[0]; // Получим сервис для работы со справочником var service = source.getPPService(); // Обработаем событие ChildLoaded service.ChildLoaded.add(function (sender, args) { if (args.IsFilter) { console.log("Применён фильтр"); }; }); // Возвратаная функция для метода onChildLoaded function onChildLoaded(sender, args) { var tree = dictionaryBox.getDataArea().getActiveDictTree(); // Получим настройки var filter = args.Args.Filter ? args.Args.Filter : null; tree._Filter = filter; // Установим дочерние элементы tree.setChildNodes(args.Args.ParentKey); // Получим отфильтрованные элементы var els = source.getFilterChildEls(""); var filteredEls = []; for (var i = 0; i < els.length; i++) { filteredEls.push(els[i].getName()); }; console.log("Наименования отфильтрованных элементов: %s", filteredEls.toString()); }; // Зададим настройки фильтра var filter = { levels: -1, text: { text: "Секунда", } }; // Применим фильтр service.getFilterElements(source, filter, PP.Delegate(onChildLoaded, this, { ParentKey: "", Filter: filter // Настройки фильтра }));
В результате выполнения примера элементы справочника НСИ были отфильтрованы по строке «Секунда»:
После срабатывания обработчика события ChildLoaded и после выполнения возвратной функции в консоли браузера были выведены следующие уведомления:
Применён фильтр
Наименования отфильтрованных элементов: Секунда
См. также: