раздел
сотрировка
Технические вопросы
7.x

Сортировка в разделе по колонке типа "целое число", не выведенной в представление, но существующей в объекте схемы раздела

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

Подскажите, как программно заставить раздел сортироваться по колонке, не выведенной в представление, но существующей в объекте схемы раздела?

Нашел в сообществе:

getGridDataColumns: function() {
        var columnsConfig = this.callParent(arguments);
        columnsConfig.NumberDecimal = {
                path: "NumberDecimal",
                orderPosition: 10,
                orderDirection: 1
        };
        return columnsConfig;
}

Но это не работает.

Нравится

4 комментария

Добрый день.
Попробуйте:

[javascript]
/**
* Возвращает колонки, которые всегда выбираются запросом.
* @protected
* @overridden
* @return {Object} Возвращает массив объектов-конфигураций колонок.
*/
getGridDataColumns: function() {
var baseGridDataColumns = this.callParent(arguments);
var gridDataColumns = {
"SmrNumber": {path: "SmrNumber"}
};
return Ext.apply(baseGridDataColumns, gridDataColumns);
},
/**
* Инициализирует колонки сортировки.
* @protected
* @overridden
* @param {Terrasoft.EntitySchemaQuery} esq Запрос, в который будут инициализорованы опции сортировки.
*/
initQuerySorting: function(esq) {
var sortedColumn = esq.columns.collection.get("SmrNumber");
if (sortedColumn) {
sortedColumn.orderPosition = 0;
sortedColumn.orderDirection = this.Terrasoft.OrderDirection.DESC;
}
}
[/javascript]

Здравствуйте, Дмитрий.
Спасибо. Это то что нужно.

Здравствуйте, подскажите, как отфильтровать по колонке связанного справочника?
Например, есть деталь, в ней справочное поле, а в справочнике целочисленное поле.
Деталь UsrPrimaryContact, справочное поле UsrRelationType поле UsrOrder. Т.е. нужно отсортировать по UsrRelationType.UsrOrder

Уже разобрался. Спасибо за хороший пример.
[javascript]
/**
* Возвращает колонки, которые всегда выбираются запросом.
* @protected
* @overridden
* @return {Object} Возвращает массив объектов-конфигураций колонок.
*/
getGridDataColumns: function () {
var baseGridDataColumns = this.callParent(arguments);
var gridDataColumns = {
"UsrRelationshipType": {path: "UsrRelationshipType"},
"UsrRelationshipType.UsrOrder": {path: "UsrRelationshipType.UsrOrder"}
};
return Ext.apply(baseGridDataColumns, gridDataColumns);
},
/**
* Инициализирует колонки сортировки.
* @protected
* @overridden
* @param {Terrasoft.EntitySchemaQuery} esq Запрос, в который будут инициализорованы опции сортировки.
*/
initQuerySorting: function (esq) {
debugger;
var sortedColumn = esq.columns.collection.get("UsrRelationshipType.UsrOrder");
if (sortedColumn) {
sortedColumn.orderPosition = 0;
sortedColumn.orderDirection = this.Terrasoft.OrderDirection.ASC;
}
},
[/javascript]

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