Добавление "своей" сортировки по умолчанию в Grid детали
Добрый день Коллеги!
Появилась необходимость реализовать отдельную сортировку по умолчанию в Grid'е детали.
Итак немного отсылки о детали. Деталь содержит в себе записи относящиеся к справочной колонке "Объект администрирования". Грубо говоря есть 4ре отдела и есть неограниченное количество пользователей, которые так или иначе входят в эти отделы (отдел - организационный юнит).
Так вот при клике на + у детали всплывает справочник этих сущностей, где пользователь может выбрать как отделы так и других пользователей.
После этого происходит стандартное добавление выбранных записей в деталь.
Так вот вопрос, каким образом можно реализовать сортировку по умолчанию для реестра так, чтобы каждый пользователь находился под тем отделом к которому он принадлежит?
Есть предположения, в исследованиях я уперся в GridUtilites и решил дальше не лезть, потому что этот миксин используется везде в системе и не получится скорее всего изменить его вызов для одной детали не затронув функционал который относится ко всему.
Так же что-то удалось найти в diff на BaseGridDetail который соответствует сортировке, но как-то это тоже ни к чему не привело.
Есть мысль что при загрузке коллекции в методе onGridDataLoaded получать коллекцию и при помощи underscore.js сортировать её как угодно, но вроде как это накладно и производительней было бы получить уже отсортированную коллекцию.
У кого какие предложения/идеи будут по данному посту?
Нравится
Добрый день. Не очень понял, а почему "я уперся в GridUtilites и решил дальше не лезть"? Можно же функцию из миксина переопределить в схеме самой детали, сославшись на родительскую, если нужно, через this.mixins.GridUtilitiesV2.... . На вскидку, вроде надо "допилить" initQuerySorting ???
типа такого:
initQuerySorting: function(esq) {
this.mixins.GridUtilitiesV2.initQuerySorting(esq);
/* далее какие-то ваши действия с esq */
}
Или наоборот, сначала - ваша сортировка, потом - родительский метод.
Иванов Александр А.,
Да, спасибо. Мы уже разрешили проблему. Если интересно могу поделиться кодом.
Да, было бы неплохо. Посмотреть, к тому же, насколько отличается от моей мысли. ))
initQuerySorting: function(esq) { var createdOnColumn = esq.addColumn("KmName", "Name"); createdOnColumn.orderDirection = this.Terrasoft.OrderDirection.ASC; }
Всё свелось к тому что такой путь посоветовала Тех. поддержка. А у меня там уже простынка такая строчек на 100 была как коллекцию грида сортировать![]()
Кисловский Михаил Андреевич,
Ну да, только тут остальная сортировка "идёт лесом". Поддержка, как всегда, короче... ![]()
Иванов Александр А.,
Ну с остальной сортировкой да. Но в целом можно выкрутиться думаю если захотеть)
Я, наверное, тогда промолчу про
getGridDataColumns: function() { return { "Id": {path: "Id"}, "TmName": {path: "TmName"}, "TmStartDate": {path: "TmStartDate", orderPosition: 0, orderDirection: Terrasoft.OrderDirection.DESC}, "TmStudios": {path: "TmStudios", orderPosition: 1, orderDirection: Terrasoft.OrderDirection.DESC} }; },
где можно сортировку по каждой колонке настроить...