2017-07-06 8 views
0

このページは、クライアントが紙面にデータを印刷するために使用します。 MVCモデルのリストをループして、新しいページに新しい反復をすべて印刷する必要があります。「ページ区切り線」のスタイル設定はFirefoxでは機能しますが、ChromeやInternet Explorerでは機能しません

CSHTMLで、私はこの(簡体字)構築しています:

@foreach (var header in Model.ReportHeaders) 
{ 
    <div style="page-break-after:always"> 
     <div> 
      <img src="Logo-image-url" /> 
      <h2>Misc Logo stuff</h2> 
     </div> 

     <div>Report header information</div> 

     <div> 
      <table> 
       <thead> 
        <th>Column headers</th> 
        <th>Column headers</th> 
        <th>Column headers</th> 
       </thead> 
       <tbody> 
        @foreach (var details in header.ReportDetails) 
        { 
         <td>All the data here</td> 
         <td>All the data here</td> 
         <td>All the data here</td> 
        } 
       </tbody> 
      </table> 
     </div> 
    </div> 
} 

をしかし、それを印刷するときにどういうわけか、しかし私はクロムやIEどちらをスタイリングした後に改ページ・再配置しようとする新しいページから開始したいです。私はそれを間違って使用していますか、それとも意図した通りに動作しませんか?

+0

新しいページはどういう意味ですか?それは新しいDivまたはコンテナか別のページですか? –

+0

あなたはdivをどこに置いていますか?内側のテーブル、フローティングエレメント、インラインブロックエレメント、境界線を持つブロックエレメントのいずれかの中にありますか?この質問の回答の参考文献を参照してください。https://stackoverflow.com/q/4884380/6638533 – samAlvin

+0

ブラウザから印刷するときに、新しい物理ページ全体が必要です。 このページは、実際にはインデックスページの別のdiv内でajax投稿を介して呼び出されますが、divは他の要素の中になく、そのIndex.cshtmlファイルの最後に真っ直ぐです。私が使用するクラス属性のどれかに浮動小数点数のスタイリングがあるかどうかをチェックして調べる必要があります。 – Hofftari

答えて

0

samAlvinが私の質問にコメントしたように、レイアウトページを継承し、クラス "ページ"のdivとID "main"のdivの両方がスタイリングフロートを持っていました:left。私は一時的に印刷機能の直前にこれらの2つのdivのフロートスタイリングを取り除き、その後にそれを再び追加しました。このページはそのミリ秒間に小さなヒックアップがありますが、少なくともすべてのブラウザで正しく印刷されます。クイックヘルプをありがとう!

関連する問題