BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v7

    • О фреймворке
    • Что изменилось в 7 версии
    • Структура
    • Доступ к участкам проекта
    • Разворачивание нового проекта
  • Backend

    • Настройки проекта Conf.php
    • Настройки модуля Module.php
    • Настройки composer
    • Функции фреймворка
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • Core класс
    • Route и работа с ними
    • Request и работа с ними
    • Middleware и работа с ними
    • Class и работа с ними
    • Api model и работа с ними
    • Template и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • Twig контекст
    • Настройка NPM
    • Сборка Frontend составляющей
    • Обращение к Api через JS
    • Хранилище (store)
    • Навигация в хосте
    • Навигация в микрофронтенде
    • Параметры микрофронтенда
    • Проверка полномочий
  • Tailux UI Компоненты

    • Базовый UI

      • AvatarDot
      • Avatar
      • Badge
      • Button
      • Card
      • ConfirmModal
      • Divider
      • Highlight
      • Tag
    • Загрузка

      • Circlebar
      • Progress
      • Skeleton
      • Spinner
    • Навигация

      • Accordion
      • AccordionButton
      • AccordionHeader
      • AccordionItem
      • AccordionPanel
      • AccordionProvider
      • Pagination
      • PaginationControl
      • PaginationItems
      • PaginationDots
      • PaginationFirst
      • PaginationLast
      • PaginationNext
      • PaginationPrevious
    • Отображение данных

      • Box
      • Collapse
      • ContextualHelp
      • ScrollShadow
      • Timeline
      • TimelineItem
    • Элементы таблиц

      • Table
      • CollapsibleSearch
      • ColumnFilter
      • CopyableCell
      • DateFilter
      • FacetedFilter
      • FilterSelector
      • PaginationSection
      • RadioFilter
      • RangeFilter
      • ResponsiveFilter
      • RoleFilter
      • SelectedRowsActions
      • TableColumnVisibility
      • TableSettings
      • TableSortIcon
    • Элементы форм

      • Checkbox
      • Combobox
      • DatePicker
      • Filepond
      • Input
      • Listbox
      • Radio
      • Range
      • Select
      • StyledSwitch
      • Swap
      • SwapOn
      • SwapOff
      • Switch
      • Textarea
      • TextEditor
      • Upload

Pagination

Компонент Pagination используется для навигации по страницам. Предоставляет контекст дочерним элементам (PaginationItems, PaginationPrevious, PaginationNext и др.) и автоматически рассчитывает диапазон отображаемых страниц с учётом граничных и соседних элементов.

Обзор

  • Основное назначение: постраничная навигация для таблиц, списков и других данных.
  • Ключевые возможности:
    • Автоматический расчёт диапазона страниц с пропусками (многоточиями).
    • Контролируемый (value) и неконтролируемый (defaultValue) режимы.
    • Настройка количества видимых соседних и граничных страниц.
    • Методы для перехода: следующая, предыдущая, первая, последняя страница.
    • Блокировка всей пагинации через disabled.
    • Предоставление контекста paginationContext дочерним компонентам.

API компонента

Props

ПропТипПо умолчаниюОписание
totalNumber(обязательный)Общее количество страниц.
valueNumberТекущая активная страница в контролируемом режиме.
defaultValueNumber1Начальная страница в неконтролируемом режиме.
disabledBooleanfalseБлокирует всю пагинацию.
siblingsNumber1Количество отображаемых страниц слева и справа от текущей.
boundariesNumber1Количество отображаемых страниц в начале и в конце диапазона.
getItemPropsFunctionФункция, возвращающая дополнительные пропсы для элемента страницы.
classNameStringДополнительные CSS-классы для корневого элемента.
classNamesObjectОбъект для кастомизации внутренних классов дочерних компонентов.

События

СобытиеПараметрОписание
update:valueNumberВызывается при изменении активной страницы.
nextPageEventВызывается при переходе на следующую страницу.
previousPageEventВызывается при переходе на предыдущую страницу.
firstPageEventВызывается при переходе на первую страницу.
lastPageEventВызывается при переходе на последнюю страницу.

Provide

Предоставляет объект paginationContext со следующими свойствами:

СвойствоТипОписание
totalFunctionВозвращает общее количество страниц.
rangeFunctionВозвращает массив диапазона страниц.
activeFunctionВозвращает номер текущей активной страницы.
disabledFunctionВозвращает состояние блокировки.
getItemPropsFunctionВозвращает функцию для получения дополнительных пропсов элемента.
setPageFunctionУстанавливает указанную страницу активной.
nextFunctionПереход на следующую страницу.
previousFunctionПереход на предыдущую страницу.
firstFunctionПереход на первую страницу.
lastFunctionПереход на последнюю страницу.
classNamesFunctionВозвращает объект с классами для дочерних компонентов.

Логика диапазона страниц

Функция getPaginationRange рассчитывает, какие номера страниц отображать:

  • boundaries: сколько страниц показывать в начале (1, 2, ...) и в конце (..., 9, 10).
  • siblings: сколько страниц показывать слева и справа от текущей активной страницы.
  • Многоточие: между группами отображается -1 (обычно рендерится как ...).

Пример диапазона

При total: 10, activePage: 5, siblings: 1, boundaries: 1:

Prev
AccordionProvider
Next
PaginationControl