Пользовательский быстрый фильтр в разделе.

Всем привет!

Прочитал статью по созданию быстрого фильтра в разделе. В статье описывается как создать фильтр по дате и по ответственному, но хотелось бы сделать еще дополнительные фильтры, например по номеру записи или по статусу (справочник). А еще интереснее по связанной записи из справочника. Может у кого есть пример как создать кастомный быстрый фильтр в разделе?

Нравится

1 комментарий

Здравствуйте!

По функциональной части: рекомендую переопределить в 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.

И, есть вероятность, что придётся помучиться со стилями для того, чтобы фильтр отображался адекватно, при необходимости могу поделиться кодом опять-таки для примера выше.

Показать все комментарии