Я нашел здесь обсуждение
Моя задача из выпадающего списка быстрого фильтра убрать редко используемые нами фильтры по отображаемым колонкам.
Прошу прощения за глупый вопрос, но без этого не пройти вперед.
Я понимаю логику работы так.
С разделом связан некоторый объект который обращается к таблице БД.
Он имеет внутри выгрузку данных таблицы бд, информацию какие поля выгружаемы и прочие свойства. Все эти параметры хранятся в DataGrid объекта.
Теперь возвращаемся к обсуждению. Редко используемым полям советуют убрать свойство "Filtering Field" в DataGrid, но такого свойства в классе столбца EntitySchemaColumn нету. В дизайнере объекта через функцию "Исходный код" примера вызова свойства нет.
- Есть ли моя ошибка в рассуждении?
- Как посоветуете сделать данную задачу?
- Есть ли актуальное обсуждение на данный момент?
![]()
Нравится
То обсуждение относиться к версии 3.Х, которая с нынешней 7.Х не связана практически никак. Более актуальное обсуждение похожих вопросов было тут или тут. Скорее всего, нужно будет найти в коде место формирования списка колонок и для конкретного раздела внести туда дополнительную логику. См. в CustomFilterViewModelV2, похоже, это оно:
function getSimpleFilterColumnList(filters, list) {
list.clear();
var columnList = {};
var columnNames = [];
var columns = this.entitySchema.columns;
Terrasoft.each(columns, function(column) {
if (column.dataValueType !== Terrasoft.DataValueType.GUID &&
column.dataValueType !== Terrasoft.DataValueType.TIME &&
column.dataValueType !== Terrasoft.DataValueType.BLOB &&
column.dataValueType !== Terrasoft.DataValueType.IMAGELOOKUP &&
column.usageType !== ConfigurationEnums.EntitySchemaColumnUsageType.None) {
if (this.isColumnDeprecated(column)) {
return;
}
columnNames.push({
name: column.name,
caption: column.caption
});
}
}, this);
var sortedColumnNames = columnNames.sort(function(a, b) {
if (a.caption === b.caption) {
return 0;
} else {
return a.caption > b.caption ? 1 : -1;
}
});
Terrasoft.each(sortedColumnNames, function(item) {
var column = columns[item.name];
columnList[column.name] = {
value: column.name,
displayValue: column.caption,
dataValueType: column.dataValueType,
referenceSchemaName: column.referenceSchemaName
};
});
list.loadAll(columnList);
}