2012-05-15 16 views
5

Ich habe eine relativ lange Tabelle. Jeder Datensatz hat sechs Zeilen. So ein Artikel mit einer Kennung von 16 hat <tr-16-1><tr-16-2>.....<tr-16-6>, Kennung 25 wäre <tr-25-1><tr-25-2>.....<tr-25-6>, usw.Gruppierung Tabellenzeilen und Seitenumbrüche

Ich möchte die Seitenumbrüche, um keine Gruppierung der sechs Zeilen zu teilen. Wenn also <tr-25-6> auf einer neuen Seite fortfahren würde, würde ich gerne alle <tr-25's> damit brechen.

Ich kann leicht eine Klasse an alle sechs Zeilen anhängen, wenn das helfen würde. Kann mir bitte jemand in die richtige Richtung zeigen, wie das geht? Vielen Dank für deine Hilfe.

+0

wenn etwa _ auf einer neuen Seite - redest du über Druckregeln? – fcalderan

+0

genau - danke. –

Antwort

5

Eine Möglichkeit ist die Gruppierung alle Zeilen, die mit demselben Datensatz in einem einzigen tbody beziehen, so haben Sie mehr tbody jeder mit 6 Reihen (it's perfectly fine und scheint als eine Atomgruppe logisch zu sein), dann dieses Add

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

Auf diese Weise ein Seitenumbruch innerhalb eines tbody für Mediendruck herrschen wird vermieden.
Leider page-break-inside wird auf jedem modernen Browser unterstützt except Firefox (Bug #132035)

+1

Probieren Sie es einfach aus - alle tr-Gruppen in ihre eigenen tbody Tags eingewickelt, aber leider hat es das Problem nicht gelöst. Ich habe es sowohl in Chrome als auch in IE versucht. –

+0

könnten Sie eine Beispielgeige mit einigen Daten posten und Ihre Frage aktualisieren? Ich werde versuchen, weiter zu untersuchen – fcalderan

+1

Vielen Dank. Ich habe eine Probe unter http://jsfiddle.net/wKvuP/ veröffentlicht. Möglicherweise müssen Sie die Daten wiederholen, um genügend Informationen für einen Seitenumbruch zu erstellen. Danke nochmal für deine Hilfe. –

1

ich diesen einen Schuss geben würde:

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

Wenn Sie den @ media-Tag nicht verwenden wollen, ist dies ein weiterer Weg, :

hinzufügen class=print-entire auf den Tisch, und fügen Sie diesen Stil:

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