Фильтрация списка, ограничение списка, поиск по атрибутам

В статье описываются механизмы настройки фильтрации и поиска на списках.

Выпадающий список как компонент фильтрации

Общий вид компонента Flexberry Objectlistview с использованием выпадающего списка как компонента фильтрации, если текущая тема оформления “Ghost”:

dropdown-filter-for-directories

Пример с реализацией доступен для ознакомления на тестовом стенде.

Настройка шаблона формы

В шаблоне формы необходимо указать для компонента flexberry-objectlistview свойство ddlFilterSettings:


{{flexberry-objectlistview
  ...
  ddlFilterSettings=ddlFilterSettings
}}

Настройка контроллера формы

Для настройки выпадающего списка как компонента фильтрации необходимо определить массив объектов. Каждый объект должен содержать следующие свойства:

[
  {
    modelName: '...', // Имя модели.
    projectionName: '...', // Имя проекции.
    propName: '...', // Имя поля.
    bindingPath: '...' // Путь к свойству модели, относящемуся к текущей ячейке таблицы.
  },
  ...
]

В контроллере нужно определить поле ddlFilterSettings. Например:

import { computed, observer } from '@ember/object';
import ListFormController from 'ember-flexberry/controllers/list-form';

export default ListFormController.extend({
  ...
  ddlFilterSettings: computed(function () {
    return [{
      modelName: 'ember-flexberry-dummy-suggestion-type',
      projectionName: 'SuggestionTypeL',
      propName: 'name',
      bindingPath: 'type'
    }];
  })
});