Я нашел здесь обсуждение
Моя задача из выпадающего списка быстрого фильтра убрать редко используемые нами фильтры по отображаемым колонкам.
Прошу прощения за глупый вопрос, но без этого не пройти вперед.
Я понимаю логику работы так.
С разделом связан некоторый объект который обращается к таблице БД.
Он имеет внутри выгрузку данных таблицы бд, информацию какие поля выгружаемы и прочие свойства. Все эти параметры хранятся в 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); }