Документация для разработчиков
Темная тема

Отложенная загрузка колонок

Описание

Отложенная загрузка колонок предполагает, что в параметрах компонента, в грид будут передаваться только те колонки, которые отображаются. А полный список колонок, который используется в настройках грида будет загружаться отложено, по мере необходимости.

Для включения отложенной загрузки, потребуется:

  1. Передать в грид параметр компонента LAZY_LOAD со значением ['CONTROLLER' => 'my.controller.name'], естественно, вместо my.controller.name нужно указать настоящее имя контроллера к которому будет обращаться грид за списком колонок;
  2. Реализовать сам контроллер с методом getColumnsList, который будет возвращать список колонок.

Пример


Параметры компонента

'COLUMNS' => $currentlyDisplayedColumnsList,
'LAZY_LOAD' => [
	'CONTROLLER' => 'main.grid',
],

Обратите внимание, что в COLUMNS нужно передать только те колонки, которые сейчас отображаются. Список колонок может отличаться от списка колонок по умолчанию, т. к. набор колонок может быть настроен пользователем. Получить список отображаемых колонок можно с помощью PHP API грида. Пример ниже:

$gridOptions = new \Bitrix\Main\Grid\Options($gridId);
$defaultColumns = ['columns_id_1', 'column_id_2', ...];
$currentlyDisplayedColumns = $gridOptions->getUsedColumns($defaultColumns);

Этот пример вернет список колонок которые выбрал пользователь, а если пользователь ничего не настраивал, то вернется список колонок по умолчанию, который был передан первым параметром.


Контроллер

class Grid extends \Bitrix\Main\Engine\Controller
{
	public function getColumnsListAction(string $gridId): array
	{
		return [
		[...],
		[...],
		...,
		]; 
	}
}

Получение списка используемых колонок

Вернет массив идентификаторов колонок которые сейчас используются. Первым параметром необходимо передать массив идентификаторов колонок, которые должны отображаться по умолчанию.

$gridOptions = new \Bitrix\Main\Grid\Options($gridId);
$defaultColumns = ['columns_id_1', 'column_id_2', ...];
$columns = $gridOptions->getUsedColumns($defaultColumns);


© «Битрикс», 2001-2024, «1С-Битрикс», 2024