simplePagination
simplePagination загружает данные на страницы и предоставляет элементы управления для навигации между ними.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
simplePagination имеет простой вид с количеством строк и кнопками навигации.
Также может содержать выпадающий список для выбора количества элементов на странице.
По умолчанию Jmix Studio создаёт simplePagination при создании для сущности экрана списка StandardListView.
<data>
<collection id="customersDc"
class="io.jmix.uisamples.entity.Customer">
<fetchPlan extends="_local"/>
<loader id="customersDl">
<query>
<![CDATA[select e from Customer e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<simplePagination alignSelf="CENTER" itemsPerPageDefaultValue="5"
dataLoader="customersDl"/>
<dataGrid id="customersDataGrid"
dataContainer="customersDc"
width="100%"
minHeight="15em">
<columns>
<column property="name"/>
<column property="lastName"/>
</columns>
</dataGrid>
</layout>
Количество элементов на странице
Компонент simplePagination содержит специальный comboBox с вариантами ограничения количества элементов на странице. Для его отображения установите атрибут itemsPerPageVisible в значение true. По умолчанию: false.
Значение этого списка по умолчанию задаётся свойством jmix.ui.component.pagination-items-per-page-items.
Вы можете настроить собственный список вариантов через атрибут itemsPerPageItems. Значение должно быть списком чисел, разделенных запятыми:
<data>
<collection id="customersDc"
class="io.jmix.uisamples.entity.Customer">
<fetchPlan extends="_local"/>
<loader id="customersDl">
<query>
<![CDATA[select e from Customer e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<simplePagination alignSelf="CENTER"
itemsPerPageVisible="true"
itemsPerPageItems="5, 10, 15"
itemsPerPageDefaultValue="5"
dataLoader="customersDl"/>
<dataGrid id="customersDataGrid"
dataContainer="customersDc"
width="100%"
minHeight="15em">
<columns>
<column property="name"/>
<column property="lastName"/>
</columns>
</dataGrid>
</layout>
Варианты со значением, меньшим или равным 0, игнорируются. Варианты, превышающие максимально допустимый размер выборки сущности, заменяются на максимальное значение.
Для установки значения по умолчанию используйте атрибут itemsPerPageDefaultValue:
<data>
<collection id="customersDc"
class="io.jmix.uisamples.entity.Customer">
<fetchPlan extends="_local"/>
<loader id="customersDl">
<query>
<![CDATA[select e from Customer e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<simplePagination alignSelf="CENTER"
itemsPerPageVisible="true"
itemsPerPageItems="5, 10, 15"
itemsPerPageDefaultValue="5"
dataLoader="customersDl"/>
<dataGrid id="customersDataGrid"
dataContainer="customersDc"
width="100%"
minHeight="15em">
<columns>
<column property="name"/>
<column property="lastName"/>
</columns>
</dataGrid>
</layout>
Атрибут itemsPerPageUnlimitedItemVisible управляет отображением варианта null в comboBox. По умолчанию: true.
При выборе null-варианта компонент попытается загрузить все данные в пределах ограничения максимально допустимого размера выборки.
|
Максимально допустимый размер выборки для всех сущностей определяется свойством jmix.ui.default-max-fetch-size (по умолчанию 10000). Для конкретной сущности можно задать отдельное ограничение через jmix.ui.entity-max-fetch-size. |
Надпись пустого элемента
Когда itemsPerPageUnlimitedItemVisible="true", в выпадающем списке отображается пустой элемент, который позволяет загрузить все данные (ограниченные максимальным размером выборки). По умолчанию этот элемент отображается как пустая строка.
Вы можете настроить надпись для этого пустого элемента, добавив ключ сообщения в ваш пакет сообщений:
pagination.itemsPerPage.emptySelectionCaption=Show all
|
Если ключ сообщения |
Предотвращение обновления
BeforeRefreshEvent запускается до того, как соответствующий загрузчик данных загрузит другую страницу. Обработчик может вызвать preventRefresh(), чтобы отменить операцию.
<data>
<collection id="customersDc"
class="io.jmix.uisamples.entity.Customer">
<fetchPlan extends="_local"/>
<loader id="customersDl">
<query>
<![CDATA[select e from Customer e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<simplePagination id="simplePagination"
alignSelf="CENTER"
itemsPerPageDefaultValue="5"
dataLoader="customersDl"/>
<dataGrid id="customersDataGrid"
dataContainer="customersDc"
width="100%"
minHeight="15em">
<columns>
<column property="name"/>
<column property="lastName"/>
</columns>
</dataGrid>
</layout>
@Autowired
protected Notifications notifications;
@Subscribe("simplePagination")
protected void onSimplePaginationBeforeRefresh(PaginationComponent.BeforeRefreshEvent<SimplePagination> event) {
notifications.show("Before data refresh");
}
Обработка завершенного обновления
AfterRefreshEvent запускается после того, как компонент успешно обновит данные, при условии, что операция не была предотвращена.
<data>
<collection id="customersDc"
class="io.jmix.uisamples.entity.Customer">
<fetchPlan extends="_local"/>
<loader id="customersDl">
<query>
<![CDATA[select e from Customer e]]>
</query>
</loader>
</collection>
</data>
<facets>
<dataLoadCoordinator auto="true"/>
</facets>
<layout>
<simplePagination id="simplePagination"
alignSelf="CENTER"
itemsPerPageDefaultValue="5"
dataLoader="customersDl"/>
<dataGrid id="customersDataGrid"
dataContainer="customersDc"
width="100%"
minHeight="15em">
<columns>
<column property="name"/>
<column property="lastName"/>
</columns>
</dataGrid>
</layout>
@Autowired
protected Notifications notifications;
@Subscribe("simplePagination")
protected void onSimplePaginationAfterRefresh(PaginationComponent.AfterRefreshEvent<SimplePagination> event) {
notifications.show("After data refresh");
}
Атрибуты
simplePagination имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
Атрибут |
— |
|
Чтобы создать |
— |
|
|
Устанавливает значение по умолчанию для количества элементов на странице. См. Элементов на странице. |
— |
|
Устанавливает количество элементов на странице. См. Элементов на странице. |
— |
|
Определяет, включает ли список элементов на странице возможность загрузки всех доступных элементов. См. Элементов на странице. |
— |
|
Управляет отображением селектора элементов на странице. См. Элементов на странице. |
— |
simplePagination имеет следующие общие атрибуты:
Обработчики
simplePagination имеет следующие уникальные обработчики:
| Имя | Описание |
|---|---|
|
|
|
|
Устанавливает делегат, который используется для получения общего количества элементов. |
simplePagination имеет следующие общие обработчики: