2012-05-15 22 views
5

Tengo una tabla relativamente larga. Cada registro tiene seis filas. Por lo tanto, un elemento con un identificador de 16 tiene <tr-16-1><tr-16-2>.....<tr-16-6>, el identificador 25 sería <tr-25-1><tr-25-2>.....<tr-25-6>, etc.Agrupar filas de tablas y saltos de página

Me gustaría que los saltos de página no dividan ninguna agrupación de las seis filas. Entonces, si <tr-25-6> continuara en una página nueva, me gustaría que todos <tr-25's> rompieran con ella.

Puedo adjuntar fácilmente una clase a las seis filas si eso ayuda. ¿Puede alguien señalarme en la dirección correcta sobre cómo hacer esto? Muchas gracias por su ayuda.

+0

cuando digamos _ en una nueva página_ ¿estás hablando de reglas de impresión? – fcalderan

+0

exactamente - gracias. –

Respuesta

5

Una posibilidad es agrupar todas las filas que se refieren al mismo registro dentro de un único tbody, para que tenga más tbody que contiene 6 filas cada uno (it's perfectly fine y parece ser lógico como un grupo atómico), continuación, agregue este gobernar por medios impresos

@media print { 
    tbody { 
     page-break-inside: avoid; 
    } 
} 

de esta manera se evitará un salto de página dentro de un tbody.
Desafortunadamente page-break-inside es compatible con todos los navegadores modernos except Firefox (Bug #132035)

+1

Acabo de dar una oportunidad: envolví todos los grupos tr en sus propias etiquetas tbody pero, desafortunadamente, no resolvió el problema. Lo intenté tanto en Chrome como en IE. –

+0

¿podría publicar un ejemplo de violín con algunos datos y actualizar su pregunta? Trataré de investigar más – fcalderan

+1

Muchas gracias. Publiqué una muestra en http://jsfiddle.net/wKvuP/. Es posible que deba repetir los datos para crear suficiente información para un salto de página. De nuevo, gracias por tu ayuda. –

1

le daría a este un tiro:

@media print { 
    tr, td, th { page-break-inside:avoid } 
} 
1

Si no desea utilizar la etiqueta @media, esta es otra manera :

Añadir class=print-entire a su mesa, y añadir este estilo:

table.print-entire tr td, table.print-entire tr th { 
     page-break-inside: avoid; 
    } 
Cuestiones relacionadas