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 и после выполнения возвратной функции в консоли браузера были выведены следующие уведомления:
Применён фильтр
Наименования отфильтрованных элементов: Секунда
См. также: