Всем привет!
Прочитал статью по созданию быстрого фильтра в разделе. В статье описывается как создать фильтр по дате и по ответственному, но хотелось бы сделать еще дополнительные фильтры, например по номеру записи или по статусу (справочник). А еще интереснее по связанной записи из справочника. Может у кого есть пример как создать кастомный быстрый фильтр в разделе?
Нравится
Здравствуйте!
По функциональной части: рекомендую переопределить в Section метод getFilters и там в зависимости от выбранного фильтра в разделе добавлять или удалять фильтры.
По части отображения: добавить свой контейнер в фильтры.
Вот пример для добавления галочки в раздел фильтров:
{ "operation": "insert", "name": "CustomContainer", "parentName": "LeftGridUtilsContainer", "propertyName": "items", "index": 0, "values": { "id": "CustomContainer", "itemType": this.Terrasoft.ViewItemType.CONTAINER, "items": [], "wrapClass": ["filters-container-wrapClass"] } }, { "operation": "insert", "name": "CustomFlag", "parentName": "CustomContainer", "propertyName": "items", "values": { "caption": { "bindTo": "Resources.Strings.CustomFlagCaption" }, "bindTo": "CustomAttribute", "controlConfig": { "className": "Terrasoft.CheckBoxEdit", "checkedchanged": { "bindTo": "onCustomFlagChanged" } } } }
UPD: Точно, ещё для того, чтобы фильтр применялся после изменения фильтра в разделе необходимо в приведённом выше примере в методе onCustomFlagChanged инициировать обновление реестра (this.reloadGridData();).
Так же на момент вызова метода getFilters аттрибут CustomAttribute не изменял своего значения, поэтому был введён новый аттрибут, значение которого менялось так же в методе onCustomFlagChanged.
И, есть вероятность, что придётся помучиться со стилями для того, чтобы фильтр отображался адекватно, при необходимости могу поделиться кодом опять-таки для примера выше.