2

何百行もある長いテーブルがあります。各ページにテーブル ヘッダーを印刷するために、THEAD {display: table-header-group} を使用してテーブルのスタイルを設定しています。また、Firefox と IE9 では期待どおりに動作します。しかし、以下のコードに示すように改ページを強制しようとすると、IE9 では機能しません。IE9 では、テーブル ヘッダーは、テーブルが自然に分割されるページのみが印刷されます。

ここにコードスニペットがあります -

CSS: 
@media print {
    thead { display: table-header-group; }
}

HTML/PHP:
    <table>
      <thead>
        <tr>
           <th>Header 1</th>
               <th>Header 2</th>
               <th>Header 3</th>        
           </tr>
      </thead>
      <tbody>
           <?php 
           foreach ($items as $item) {
               echo  " <tr> " ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;
                  echo  "<td>text</td>" ;

                  if ($condition) {
                      echo  "</tr>" ;

                      echo  "<tr style='page-break-after:always;'>" ;
                      echo  "</tr>" ;
                  }
           }
           ?>
       </tbody>
    </table>

これに関する助けに大いに感謝します。

ありがとう。

4

1 に答える 1

2

終了タグを含む正しい HTML を使用することから始めます

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr>" );
} else {
   echo ( "</tr>" );
}

それでも解決しない場合は、試してください

if ($condition) {
   echo ( "</tr>" );
   echo ( "<tr style='page-break-after:always;'>" );
   echo ( "</tr> " );
   echo ( ' <tr class="class_only_visible_when_printed"> ' );
   echo ( "  <th>Header 1</th> " );
   echo ( "  <th>Header 2</th> " );
   echo ( "  <th>Header 3</th> " );        
   echo ( " </tr> " );
} else {
   echo ( "</tr>" );
} 
于 2013-03-21T16:32:36.657 に答える