Всем привет!
Прочитал статью по созданию быстрого фильтра в разделе. В статье описывается как создать фильтр по дате и по ответственному, но хотелось бы сделать еще дополнительные фильтры, например по номеру записи или по статусу (справочник). А еще интереснее по связанной записи из справочника. Может у кого есть пример как создать кастомный быстрый фильтр в разделе?
Нравится
Здравствуйте!
По функциональной части: рекомендую переопределить в 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.
И, есть вероятность, что придётся помучиться со стилями для того, чтобы фильтр отображался адекватно, при необходимости могу поделиться кодом опять-таки для примера выше.