Сортировка в админке (CAdminSorting)

Сортировку можно сделать через объект CAdminSorting().

$table_id = 'table_id'; // ид таблицы
$oSort = new CAdminSorting($table_id, 'id', 'desc');

$lAdmin = new CAdminList($table_id, $oSort);

// параметр "sort" разрешает сортировку по текущей колонке
$lAdmin->AddHeaders([
    ['id' => 'id',    'content' => 'ИД',  'default' => true, 'sort' => 'id'],
    ['id' => 'title', 'content' => 'Имя', 'default' => true, 'sort' => 'title'],
]);

В результате в списке элементов станет доступно сортировка по указанному полю.

Bitrix. CAdminSorting

Также надо добавить метод $lAdmin->CheckListMode() перед подключением файла «prolog_admin_after.php», чтобы можно было сортировать данные через Ajax.

// режим вывода (для Ajax)
$lAdmin->CheckListMode();

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");

Теперь при сортировки будет отправляться Ajax-запрос на текущую страницу с GET-запросами:

  • by — имя поля для сортировки (например «id» или «title»);
  • order — порядок сортировки («asc» или «desc»).

Данные GET-запросы можно использовать для сортировки во время выборки данных.