Reputation: 176
I want to change the way material-ui displays table pagination. Currently what material-ui shows is like this
I want to change it like this
Is it possible to style it this way?
Upvotes: 1
Views: 4569
Reputation: 109
You can do it by override the pagination component By default, pagination uses the TablePagination component that is optimized for handling tabular data. This demo replaces it with the Pagination component.
import * as React from 'react';
import { makeStyles } from '@material-ui/styles';
import { DataGrid, useGridSlotComponentProps } from '@mui/x-data-grid';
import { useDemoData } from '@mui/x-data-grid-generator';
import Pagination from '@material-ui/lab/Pagination';
const useStyles = makeStyles({
root: {
display: 'flex',
},
});
function CustomPagination() {
const { state, apiRef } = useGridSlotComponentProps();
const classes = useStyles();
return (
<Pagination
className={classes.root}
color="primary"
count={state.pagination.pageCount}
page={state.pagination.page + 1}
onChange={(event, value) => apiRef.current.setPage(value - 1)}
/>
);
}
export default function CustomPaginationGrid() {
const { data } = useDemoData({
dataSet: 'Commodity',
rowLength: 100,
maxColumns: 6,
});
return (
<div style={{ height: 400, width: '100%' }}>
<DataGrid
pagination
pageSize={5}
rowsPerPageOptions={[5]}
components={{
Pagination: CustomPagination,
}}
{...data}
/>
</div>
);
}
Upvotes: 1