Pagination分页

采用分页的形式分隔长列表,每次只加载一个页面。

何时使用

  • 当加载/渲染所有数据将花费很多时间时;

  • 可切换页码浏览数据。

代码演示

Pagination 分页 - 图1

基本使用

基本使用。

  1. import { Form, Switch, DataSet, Pagination } from 'choerodon-ui/pro';
  2. import { observer } from 'mobx-react';
  3. function handleChange(page, pageSize) {
  4. console.log('[pagination]', page, pageSize);
  5. }
  6. @observer
  7. class App extends React.Component {
  8. ds = new DataSet({
  9. autoCreate: true,
  10. fields: [
  11. { name: 'showSizeChanger', type: 'boolean', label: 'showSizeChanger', defaultValue: true },
  12. { name: 'showTotal', type: 'boolean', label: 'showTotal', defaultValue: true },
  13. { name: 'showPager', type: 'boolean', label: 'showPager', defaultValue: false },
  14. { name: 'showQuickJumper', type: 'boolean', label: 'showQuickJumper', defaultValue: false },
  15. ],
  16. });
  17. render() {
  18. const {
  19. ds,
  20. ds: { current },
  21. } = this;
  22. return (
  23. <div>
  24. <Form columns={4} dataSet={ds} labelWidth={150}>
  25. <Switch name="showSizeChanger" />
  26. <Switch name="showTotal" />
  27. <Switch name="showPager" />
  28. <Switch name="showQuickJumper" />
  29. </Form>
  30. <Pagination
  31. showSizeChanger={current.get('showSizeChanger')}
  32. showTotal={current.get('showTotal')}
  33. showPager={current.get('showPager')}
  34. showQuickJumper={current.get('showQuickJumper')}
  35. total={90}
  36. onChange={handleChange}
  37. />
  38. </div>
  39. );
  40. }
  41. }
  42. ReactDOM.render(<App />, mountNode);

Pagination 分页 - 图2

受控输入框

受控输入框

  1. import { Pagination } from 'choerodon-ui/pro';
  2. class App extends React.Component {
  3. state = {
  4. page: 2,
  5. pageSize: 20,
  6. }
  7. handleChange = (page, pageSize) => {
  8. console.log('[page]', page, '[pageSize]', pageSize);
  9. this.setState({
  10. page,
  11. pageSize,
  12. });
  13. }
  14. render() {
  15. const { page, pageSize } = this.state;
  16. return <Pagination total={50} page={page} pageSize={pageSize} onChange={this.handleChange} />;
  17. }
  18. }
  19. ReactDOM.render(
  20. <App />,
  21. mountNode
  22. );

Pagination 分页 - 图3

数据源

绑定数据源。

  1. import { DataSet, Pagination } from 'choerodon-ui/pro';
  2. class App extends React.Component {
  3. ds = new DataSet({
  4. autoQuery: true,
  5. name: 'user',
  6. pageSize: 20,
  7. });
  8. render() {
  9. return <Pagination dataSet={this.ds} />;
  10. }
  11. }
  12. ReactDOM.render(
  13. <App />,
  14. mountNode
  15. );

Pagination 分页 - 图4

Hzero定制

Hzero 定制。

  1. import { Form, Switch, DataSet, Pagination, Icon } from 'choerodon-ui/pro';
  2. function pagerRenderer(page, type) {
  3. switch (type) {
  4. case 'first':
  5. return <Icon type="fast_rewind" />;
  6. case 'last':
  7. return <Icon type="fast_forward" />;
  8. case 'prev':
  9. return <Icon type="navigate_before" />;
  10. case 'next':
  11. return <Icon type="navigate_next" />;
  12. case 'jump-prev':
  13. case 'jump-next':
  14. return '•••';
  15. default:
  16. return page;
  17. }
  18. }
  19. function sizeChangerRenderer({ text }) {
  20. return `${text} 条/页`;
  21. }
  22. ReactDOM.render(
  23. <Pagination
  24. showSizeChangerLabel={false}
  25. showTotal={false}
  26. showPager
  27. showQuickJumper
  28. sizeChangerPosition="right"
  29. sizeChangerOptionRenderer={sizeChangerRenderer}
  30. itemRender={pagerRenderer}
  31. total={50}
  32. pageSize={10}
  33. page={1}
  34. />,
  35. mountNode,
  36. );

API

Pagination

参数说明类型默认值
total总数number
page当前页number
pageSize分页数number
onChange页码改变的回调,参数是改变后的页码及每页条数(page, pageSize) => void
pageSizeOptions指定每页可以显示多少条string[]['10', '20', '50', '100']
showQuickJumper是否显示快速跳转至某页booleanfalse
showSizeChanger是否显示分页大小选择器booleantrue
showSizeChangerLabel是否显示分页大小选择器的标签booleantrue
showTotal显示总数booleantrue
showPager显示数字按钮booleanfalse
itemRender按钮渲染。type - 按钮类型,可选值:first last prev next jump-prev jump-next(page, type) => ReactNode
sizeChangerPosition分页大小选择器的位置,可选值: left rightstringleft
sizeChangerOptionRenderer分页大小选择器的选项渲染器({ dataSet, record, text, value}) => ReactNode({ text }) => text

更多属性请参考 DataSetComponent