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

Предыдущая реализация main.ui.grid

Здесь описана предыдущая реализация компонента main.ui.grid и его параметры.

Описание

Компонент main.ui.grid (классы Bitrix\Main\Grid) выводит информацию в табличной форме. Является системным компонентом.

В физической структуре его можно найти в папке /bitrix/components/bitrix/main.ui.grid.

Параметры

ПараметрТипОписание
GRID_IDstringИдентификатор грида.
HEADERSarrayМассив с заголовками столбцов таблицы.

Простейший пример массива

ROWSarrayМассив с значениями По ключу data передаём массив с данными ячеек. таблицы и действиями По ключу actions передаем массив действий. в контекстном меню.

Простейший пример массива

TOTAL_ROWS_COUNTstringКоличество отфильтрованных элементов в таблице всего.
SHOW_ROW_CHECKBOXESboolПоказывать чекбоксы у строк для множественных действий.
NAV_OBJECTobjectОбъект для постраничной навигации.
AJAX_MODEstringАктивирует режим ajax.
AJAX_IDstringAjax ID берется из компонента фильтра.
PAGE_SIZESarrayМассив для выбора кол-ва элементов на странице.
AJAX_OPTION_JUMPstringЕсли пользователь совершит AJAX-переход, то при установленой опции по окончании загрузки произойдет прокрутка к началу компонента.
SHOW_CHECK_ALL_CHECKBOXESboolПоказывать "Выбрать все".
SHOW_ROW_ACTIONS_MENUboolОтображение меню действий для элемента таблицы.
SHOW_GRID_SETTINGS_MENUboolОтображение кнопки настройки списка.
SHOW_NAVIGATION_PANELboolОтображать панель навигации.
SHOW_PAGINATIONboolОтображать кнопки постраничной навигации ("Предыдущая", "Все", "Следующая").
SHOW_SELECTED_COUNTERboolПоказывать "Выбрано элементов".
SHOW_TOTAL_COUNTERboolПоказывать "Всего элементов".
SHOW_PAGESIZEboolВыводить выбор количества элементов на странице.
ACTION_PANELarrayОпределяет панель групповых действий (передаётся массив с кнопками и действиями).
SHOW_ACTION_PANELboolРазрешает отображение панели групповых действий Панель отобразится только если сама панель определена в параметре ACTION_PANEL. .
ALLOW_COLUMNS_SORTboolПараметр разрешает или запрещает сортировку колонок перетаскиванием (т.е. менять колонки местами перетаскиванием мышью).
ALLOW_COLUMN_RESIZEboolРазрешает или запрещает изменение ширины колонок.
ALLOW_HORIZONTAL_SCROLLboolБудет доступна горизонтальная прокрутка.
ALLOW_SORTboolРазрешить сортировку.
ALLOW_PIN_HEADERboolРазрешать закреплять шапку таблицы.
AJAX_OPTION_HISTORYboolКогда пользователь выполняет AJAX-переходы, то при включенной опции можно использовать кнопки браузера "Назад" и "Вперед".
ENABLE_COLLAPSIBLE_ROWSboolВключает сворачивание/разворачивание строк.
ENABLE_FIELDS_SEARCHbool Включает возможность фильтрации по названию поля.
HEADERS_SECTIONSarrayМассив для группировки полей в main.ui.filter вида:
array (
 0 =>
 array (
	'id' => 'DEAL',
	'name' => 'Мое название',
	'default' => true, - в эту секцию скидываем все поля, у которых явно не задана привязка к секции
	'selected' => true, - секция показывается по умолчанию
 ),
 1 =>
 array (
	'id' => 'CONTACT',
	'name' => 'Контакт',
	'selected' => true,
 ),
 2 =>
 array (
	'id' => 'COMPANY',
	'name' => 'Компания',
	'selected' => true,
 ),
)

С версии 22.500.0 добавлена возможность выводить всплывающие подсказки у секций колонок:

[
	'id' => 'PRODUCT',
	'name' => 'Товар',
	'hint' => 'Свойства товара для вывода в таблице', // текст всплывающей подсказки
	'hintInteractivity' => true, // если true, то с подсказкой можно взаимодействовать (выделять текст, 
	// нажимать на кнопки в подсказке); если false, то при снятии курсора со значка ? подсказка исчезнет
	'hintHtml' => false, // если true, то текст подсказки выводится в формате html
	'selected' => true,
],

Пример вызова

<?
$grid_options = new Bitrix\Main\Grid\Options('report_list');
$sort = $grid_options->GetSorting(['sort' => ['ID' => 'DESC'], 'vars' => ['by' => 'by', 'order' => 'order']]);
$nav_params = $grid_options->GetNavParams();

$nav = new Bitrix\Main\UI\PageNavigation('report_list');
$nav->allowAllRecords(true)
	->setPageSize($nav_params['nPageSize'])
	->initFromUri();

$APPLICATION->IncludeComponent(
	'bitrix:main.ui.grid',
	'',
	[
	'GRID_ID' => 'report_list', 
	'COLUMNS' => [
		['id' => 'ID', 'name' => 'ID', 'sort' => 'ID', 'default' => true], 
		['id' => 'DATE', 'name' => 'Дата', 'sort' => 'DATE', 'default' => true], 
		['id' => 'AMOUNT', 'name' => 'Сумма', 'sort' => 'AMOUNT', 'default' => true], 
		['id' => 'PAYER_INN', 'name' => 'ИНН Плательщика', 'sort' => 'PAYER_INN', 'default' => true], 
		['id' => 'PAYER_NAME', 'name' => 'Плательщик', 'sort' => 'PAYER_NAME', 'default' => true], 
		['id' => 'IS_SPEND', 'name' => 'Тип операции', 'sort' => 'IS_SPEND', 'default' => true], 
		
	'ROWS' => $list,
	'SHOW_ROW_CHECKBOXES' => true, 
	'NAV_OBJECT' => $nav, 
	'AJAX_MODE' => 'Y', 
	'AJAX_ID' => \CAjax::getComponentID('bitrix:main.ui.grid', '.default', ''), 
	'PAGE_SIZES' => [ 
		['NAME' => "5", 'VALUE' => '5'], 
		['NAME' => '10', 'VALUE' => '10'], 
		['NAME' => '20', 'VALUE' => '20'], 
		['NAME' => '50', 'VALUE' => '50'], 
		['NAME' => '100', 'VALUE' => '100'] 
		], 
	'AJAX_OPTION_JUMP'          => 'N', 
	'SHOW_CHECK_ALL_CHECKBOXES' => true, 
	'SHOW_ROW_ACTIONS_MENU'     => true, 
	'SHOW_GRID_SETTINGS_MENU'   => true, 
	'SHOW_NAVIGATION_PANEL'     => true, 
	'SHOW_PAGINATION'           => true, 
	'SHOW_SELECTED_COUNTER'     => true, 
	'SHOW_TOTAL_COUNTER'        => true, 
	'SHOW_PAGESIZE'             => true, 
	'SHOW_ACTION_PANEL'         => true, 
	'ACTION_PANEL'              => [ 
		'GROUPS' => [ 
			'TYPE' => [ 
				'ITEMS' => [ 
					[ 
						'ID'    => 'set-type', 
						'TYPE'  => 'DROPDOWN', 
						'ITEMS' => [ 
							['VALUE' => '', 'NAME' => '- Выбрать -'], 
							['VALUE' => 'plus', 'NAME' => 'Поступление'], 
							['VALUE' => 'minus', 'NAME' => 'Списание'] 
							] 
					], 
				], 
			] 
		], 
	], 
	'ALLOW_COLUMNS_SORT'        => true, 
	'ALLOW_COLUMNS_RESIZE'      => true, 
	'ALLOW_HORIZONTAL_SCROLL'   => true, 
	'ALLOW_SORT'                => true, 
	'ALLOW_PIN_HEADER'          => true, 
	'AJAX_OPTION_HISTORY'       => 'N' 
	]
);?>

Добавление кнопок

Для добавления кнопок в ACTION_PANEL удобно использовать класс \Bitrix\Main\Grid\Panel\Snippet, который позволяет быстро создать какую-то типовую кнопку или действие для панели грида. Пример:

// Создаем экземпляр класса:
$snippets = new \Bitrix\Main\Grid\Panel\Snippet();

// С помощью нужного метода получаем уже готовую кнопку или действие.
// Например для кнопки "Удалить":
$removeButton = $snippets->getRemoveButton();


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