2010-06-04 28 views
9

Considere mi tabla con diez filas y quiero mostrar las primeras tres filas en la página 1 y así sucesivamente ... ¿Cómo paginar una tabla usando jquery? Cualquier buen complemento ....¿Es posible paginar una tabla usando jquery?

+0

Sí lo es. Hay un buen tutorial aquí: www.youtube.com/phpapplied – Norse

Respuesta

8

Hay plugins para hacer esto:.

Además, hay un buen tutorial aquí que cubre todo tipo de manipulación de tablas en jQuery incluyendo p aginación: http://www.packtpub.com/article/jquery-table-manipulation-part1

+2

Desafortunadamente , se han movido los primeros dos enlaces. –

+0

El complemento jTable está aquí: http://plugins.jquery.com/jTable/ con más información, incluyendo enlaces a la documentación aquí: http://jtable.org/Home/Downloads. – John

1

En resumen, sí.

Hay un complemento para jquery pagination.

+1

Los enlaces están muertos. – MisterBla

+0

El nuevo hogar del código fuente es https://github.com/gbirke/jquery_pagination La página de demostración ya no es funcional: demasiadas páginas enlazaban el archivo js del código de demostración en lugar de su propia copia :( – chiborg

2

También hay Pajinate.

Usted también puede simplemente ir a the plugins sección del sitio de jQuery y palabras clave de búsqueda que le interesan

0

Puede usar el complemento datatable.Es muy útil con la función de búsqueda y número de página personalizado.

3

Creo que lo más fácil es datatables. Enlace: http://www.datatables.net/ usando "paginación: true"

Así código sería algo como:

 $('#your-table').dataTable({ 
      "scrollY": "350px", 
      "scrollCollapse": true, 
      "bSort": false, 
      "paging": true 
     }); 
0
<table class="paginated"> 
    <thead> 
     <tr> 
      <th scope="col">A</th> 
      <th scope="col">B</th> 
      <th scope="col">C</th> 
      <th scope="col">D</th> 
     </tr> 
    </thead> 
    <tbody> 
     <tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr>   
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr>   
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr>   
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr> 
<tr> 
    <td>1</td> 
    <td>2</td> 
    <td>3</td> 
    <td>4</td> 
</tr>     
    </tbody> 
</table> 

-

<script> 
$('td', 'table').each(function(i) { 
    $(this).text(i+1); 
}); 



$('table.paginated').each(function() { 
    var currentPage = 0; 
    var numPerPage = 10; 
    var $table = $(this); 
    $table.bind('repaginate', function() { 
     $table.find('tbody tr').hide().slice(currentPage * numPerPage, (currentPage + 1) * numPerPage).show(); 
    }); 
    $table.trigger('repaginate'); 
    var numRows = $table.find('tbody tr').length; 
    var numPages = Math.ceil(numRows/numPerPage); 
    var $pager = $('<div class="pager"></div>'); 
    for (var page = 0; page < numPages; page++) { 
     $('<span class="page-number"></span>').text(page + 1).bind('click', { 
      newPage: page 
     }, function(event) { 
      currentPage = event.data['newPage']; 
      $table.trigger('repaginate'); 
      $(this).addClass('active').siblings().removeClass('active'); 
     }).appendTo($pager).addClass('clickable'); 
    } 
    $pager.insertBefore($table).find('span.page-number:first').addClass('active'); 
}); 
</script> 

-

<style> 
table { 
    width: 40em; 
    margin: 2em auto; 
} 

thead { 
    background: #000; 
    color: #fff; 
} 

td { 
    width: 10em; 
    padding: 0.3em; 
} 

tbody { 
    background: #ccc; 
} 

div.pager { 
    text-align: center; 
    margin: 1em 0; 
} 

div.pager span { 
    display: inline-block; 
    width: 1.8em; 
    height: 1.8em; 
    line-height: 1.8; 
    text-align: center; 
    cursor: pointer; 
    background: #000; 
    color: #fff; 
    margin-right: 0.5em; 
} 

div.pager span.active { 
    background: #c00; 
} 

</style> 

http://jsfiddle.net/LiquidSky/djav37tg/

Cuestiones relacionadas