simplePagination 简单分页器
simplePagination 可以为页面加载数据并提供浏览数据的控件。
XML 元素 |
|
|---|---|
Java 类 |
|
基本用法
simplePagination 的外观很简单,包含行数和导航按钮。
也可以带包含每页条数的 下拉列表。
Jmix Studio 在为实体创建 StandardListView 时,默认生成 simplePagination。
<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)选项。默认值为 true。
当在 comboBox 中选择 null 选项时,组件会尝试在当前最大加载数的限制下加载所有数据。
|
所有实体的最大加载数是通过 jmix.ui.default-max-fetch-size UI 属性定义。默认值为 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");
}
XML 属性
下面是 simplePagination 的特殊属性:
| 名称 | 描述 | 默认值 |
|---|---|---|
是否自动加载数据的数量。 |
— |
|
将 |
— |
|
|
设置每页数量的默认值。参考 每页数量。 |
— |
|
设置每页显示数量中的配置。参考 每页数量。 |
— |
|
每页数量列表中是否显示一个加载全部数据的选项。参考 每页数量。 |
— |
|
是否显示每页数量的选择器。参考 每页数量。 |
— |
The following shared attributes are supported by simplePagination:
事件和处理器
下面是 simplePagination 的特殊事件和处理器:
| 名称 | 描述 |
|---|---|
|
|
|
|
设置获取数据总数量的委托。 |
下面是 simplePagination 支持的其他通用事件: