Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

176
Views
MUI TablePagination agregando la capacidad de seleccionar el número de página

Estoy usando MUI TablePagination para crear paginación en mi tabla. El código funciona bien y obtengo la mayor parte de la funcionalidad que busco:

  1. La posibilidad de que los usuarios seleccionen, a través de un menú desplegable, 5, 10 o 20 usuarios por página determinada.
  2. Muestre dinámicamente el número de páginas en función del número seleccionado de usuarios por página.

Sin embargo, me falta esta funcionalidad y no estoy seguro de qué accesorio usar con este componente para lograr esto:

  1. La capacidad de los usuarios para navegar a una página seleccionada desde el número de páginas de resultados enumerados.

Como puedes ver en paginación de la tabla actual muestra 1-5 de 22, pero quiero dar a los usuarios la posibilidad de seleccionar una página como esta paginación de selección de página

Aquí está mi código funcional:

 <TablePagination rowsPerPageOptions={[5, 10, 20]} component="div" count={showUser.length} rowsPerPage={rowsPerPage} page={page} onPageChange={handleChangePage} onRowsPerPageChange={handleChangeRowsPerPage} />

Quiero lograr esto sin eliminar la funcionalidad 1,2.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Como se mencionó en los comentarios anteriores, mi sugerencia sería utilizar el componente Pagination en lugar del componente TablePagination .

Esto requiere que maneje los tamaños de página usted mismo.

Esto debería ayudarte a llegar allí, adaptarlo a tus necesidades:

 const Demo = () => { const data = [ "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", ]; const [pageSize, setPageSize] = useState(2); const [page, setPage] = useState(1); const handlePage = (page) => setPage(page); const handlePageSizeChange = (event) => { setPageSize(event.target.value); }; const totalPages = Math.ceil(data.length / pageSize); const pageContent = data.slice((page - 1) * pageSize, page * pageSize); return ( <> <ul> {pageContent.map((item) => ( <li>{item}</li> ))} </ul> <select name="page-size" id="page-size" onChange={handlePageSizeChange}> <option value={2}>2</option> <option value={4}>4</option> <option value={6}>6</option> <option value={8}>8</option> <option value={10}>10</option> </select> <Pagination color="primary" count={totalPages} onChange={(event, value) => handlePage(value)} page={page} size="large" ></Pagination> </> ); }; export default Demo;
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!