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

Групповые действия

Групповые действия – нижняя панель грида, позволяющая выполнять какие-либо действия над выбранными строками.

Параметры панели групповых действий

ПараметрТипОписание
ACTION_PANELarrayКонфигурация панели групповых действий.
SHOW_ACTION_PANELbooleanОтображает или скрывает панель групповых действий. По умолчанию панель скрыта.
SHOW_GROUP_EDIT_BUTTONbooleanРазрешает вывод стандартной кнопки "Редактировать" в панель групповых действий.
SHOW_GROUP_DELETE_BUTTONbooleanРазрешает вывод стандартной кнопки "Удалить" в панель групповых действий.
SHOW_SELECT_ALL_RECORDS_CHECKBOXbooleanВыводит или скрывает чекбокс выбора всех строк, на всех страницах. По умолчанию чекбокс скрыт.

Конфигурация панели

Параметр ACTION_PANEL ожидает массив следующей структуры.

'ACTION_PANEL' => [
	'GROUPS' => [
		[
			'ITEMS' => [
				[
				...,   
				],
			], 
		],     
	],
],
  • GROUPS – позволяет визуально объединить элементы в группы;
  • ITEMS – элементы управления (кнопки, выпадающие списки, поля и т. д.).

Параметры элементов панели

ПараметрТипОписание
TYPEstringТип элемента панели из \Bitrix\Main\Grid\Panel\Types.
IDstringИдентификатор элемента. Обязательный параметр.
NAMEstringИмя параметра в котором будет передано значение элемента.
ONCHANGEarrayКонфигурация действия, которое должно произойти при взаимодействии с элементом, например, при клике на кнопку. Включает в себя два параметра:
  • ACTION – тип действия;
  • DATA – дополнительные данные необходимые для выполнения действия.

Типы действий


Создание нового элемента

Тип: \Bitrix\Main\Grid\Panel\Actions::CREATE.

Пример ниже создаст кнопку после элемента, на котором выполнилось действие. Действие может создавать как один элемент, так и сразу несколько.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::CREATE,
	'DATA' => [
		[
			'TYPE' => Bitrix\Main\Grid\Panel\Types::BUTTON,
			'ID' => 'example-button',
			'NAME' => 'EXAMPLE_BUTTON',
			'TEXT' => 'Example button',
			...,
		],
		...,
	],
]

Активация неактивного элемента

Тип: \Bitrix\Main\Grid\Panel\Actions::ACTIVATE

Активирует элементы, идентификаторы которых указаны в DATA, если они не активны.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::ACTIVATE,
	'DATA' => [
		['ID' => 'my-button-id'],
		['ID' => 'my-field-id'],
		...,
	],
]

Показ скрытого элемента

Тип: \Bitrix\Main\Grid\Panel\Actions::SHOW

Отображает скрытые элементы, идентификаторы которых указаны в DATA.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::SHOW,
	'DATA' => [
		['ID' => 'my-button-id'],
		['ID' => 'my-field-id'],
		...,
	],
]

Скрытие элемента

Тип: \Bitrix\Main\Grid\Panel\Actions::HIDE

Скрывает элементы, идентификаторы которых указаны в DATA.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::HIDE,
	'DATA' => [
		['ID' => 'my-button-id'],
		['ID' => 'my-field-id'],
		...,
	],
]

Скрытие всех элементов, кроме указанных

Тип: \Bitrix\Main\Grid\Panel\Actions::HIDE_ALL_EXPECT

Скрывает все элементы, кроме тех, чьи идентификаторы указаны в DATA.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::HIDE_ALL_EXPECT,
	'DATA' => [
		['ID' => 'my-button-id'],
		['ID' => 'my-field-id'],
		...,
	],
]

Отображение всех скрытых элементов

Тип: \Bitrix\Main\Grid\Panel\Actions::SHOW_ALL

Скрывает все скрытые элементы.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::SHOW_ALL,
]

Удаление элементов

Тип: \Bitrix\Main\Grid\Panel\Actions::REMOVE

Удаляет все элементы указанные в DATA.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::REMOVE,
	'DATA' => [
		['ID' => 'my-button-id'],
		['ID' => 'my-field-id'],
        ...,
	],
]

Выполнение произвольного JavaScript кода

Тип: \Bitrix\Main\Grid\Panel\Actions::CALLBACK

Выполняет JS-код указанный в DATA. Для удобства работы с API доступна переменная Grid, которая ссылается на текущий экземпляр грида.

[
	'TYPE' => \Bitrix\Main\Grid\Panel\Actions::CALLBACK,
	'DATA' => [
		['JS' => 'alert("It\'s works")'],
		['JS' => 'Grid.editSelected()'],
		...,
	],
]

Обратите внимание, что набор параметров может меняться в зависимости от типа элемента. Далее приведены примеры полного набора параметров для каждого из типов.

Типы элементов


Кнопка

Тип: Bitrix\Main\Grid\Panel\Types::BUTTON

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::BUTTON,
	'ID' => 'example-button',
	'NAME' => 'EXAMPLE_BUTTON',
	'TEXT' => 'Example button',
	'TITLE' => 'This is example button',
	'CLASS' => 'my-custom-button-class',
	'ONCHANGE' => [
		[
			'ACTION' => ...,
			'DATA' => [...],
		],
	],
]

Выпадающий список

Тип: Bitrix\Main\Grid\Panel\Types::DROPDOWN

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::DROPDOWN,
	'ID' => 'example-button',
	'NAME' => 'EXAMPLE_BUTTON',
	'MULTIPLE' => 'N', // 'Y' | 'N'
	'ITEMS' => [
		[
			'NAME' => 'Item name',
			'VALUE' => 'item_value',
			'ONCHANGE' => [
				[
					'ACTION' => ...,
					'DATA' => [...],
				],
				...,
			],   
		],
		...,
	],
]

Чекбокс

Тип: Bitrix\Main\Grid\Panel\Types::CHECKBOX

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::CHECKBOX,
	'ID' => 'example-checkbox',
	'NAME' => 'EXAMPLE_CHECKBOX',
	'TITLE' => 'This is checkbox',
	'LABEL' => 'Checkbox label',
	'VALUE' => 'checkbox_value',
	'CHECKED' => false, // true | false
	'ONCHANGE' => [
		[
     			       'ACTION' => ...,
			'DATA' => [...],
		],
		...,
	],   
]

Текстовое поле (input[type="text"])

Тип: Bitrix\Main\Grid\Panel\Types::TEXT

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::TEXT,
	'ID' => 'example-input',
	'NAME' => 'EXAMPLE_INPUT',
	'TITLE' => 'This is input',
	'PLACEHOLDER' => 'Input placeholder text',
	'VALUE' => 'Input value',
	'ONCHANGE' => [
		[
			'ACTION' => ...,
			'DATA' => [...],
		],
		...,
	],   
]

Ссылка

Тип: Bitrix\Main\Grid\Panel\Types::LINK

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::LINK,
	'ID' => 'example-link',
	'NAME' => 'EXAMPLE_LINK',
	'TITLE' => 'This is link',
	'CLASS' => 'custom-link-css-class',
	'HREF' => '//bitrix24.ru',
	'TEXT' => 'Link text',
	'ONCHANGE' => [
		[
			'ACTION' => ...,
			'DATA' => [...],
		],
		...,
	],   
]

Скрытое поле (input[type="hidden"])

Тип: Bitrix\Main\Grid\Panel\Types::HIDDEN

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::HIDDEN,
	'ID' => 'example-hidden-input',
	'NAME' => 'EXAMPLE_HIDDEN_INPUT',
	'VALUE' => 'Input value', 
]

Дата (дейтпиккер)

Тип: Bitrix\Main\Grid\Panel\Types::DATE

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::DATE,
	'ID' => 'example-date',
	'NAME' => 'EXAMPLE_DATE',
	'PLACEHOLDER' => 'Placeholder text',
	'VALUE' => '26.01.2023',
	'TIME' => false, // true | false
]

Собственное поле (HTML)

Тип: Bitrix\Main\Grid\Panel\Types::CUSTOM

[
	'TYPE' => Bitrix\Main\Grid\Panel\Types::CUSTOM,
	'ID' => 'example-custom',
	'NAME' => 'EXAMPLE_CUSTOM',
	'CLASS' => 'custom-css-class',
	'VALUE' => '<input type="text" ...> ...', 
]

Готовые элементы для стандартных действий

В гриде для типовых групповых действий предусмотрены готовые решения.


Чекбокс "Для всех"

Метод: \Bitrix\Main\Grid\Panel\Snippet::getForAllCheckbox()

Метод вернет готовый чекбокс "Для всех", который используется для групповых действий над всеми строками, на всех страницах грида.


Кнопка "Редактировать"

Метод: \Bitrix\Main\Grid\Panel\Snippet::getEditButton()

Вернет кнопку "Редактировать", которая включает инлайн-редактирование для выбранных строк.


Кнопка "Удалить"

Метод: \Bitrix\Main\Grid\Panel\Snippet::getRemoveButton()

Вернет кнопку "Удалить", которая удаляет выбранные строки.



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