我有动态生成的htmltable。我想打印这张桌子。其中包含很多页面。当我使用window.print()将其打印成7页,8页。但我的问题是每页都需要页眉和页脚(A4大小)。如何设置页眉和页脚到每个页面。 我正在使用带有C#的asp.net。
我把页眉和页脚放在.aspx页面上,但问题是当我打印时数据是动态绑定然后打印多页(即4或5页取决于数据)。因此页眉首页和页脚在最后一页上我需要在每页页眉和页脚
请提供任何建议或替代方法来完成此任务。
答案 0 :(得分:1)
I tried this solution its working.
<style type="text/css">
@media print {
thead { display: table-header-group; }
tfoot { display: table-footer-group; }
}
@media screen {
thead { display: block; }
tfoot { display: block; }
}
</style>
<body>
<table>
<thead><tr><td>Your header goes here</td></tr></thead>
<tbody>
<tr><td>
Page body in here -- as long as it needs to be
</td></tr>
</tbody>
<tfoot><tr><td>Your footer goes here</td></tr></tfoot>
</table>
</body>
答案 1 :(得分:0)
如果绝对必须有页眉/页脚,则需要在每个X表格单元格中插入分页符,其中X是您希望在每个页面上显示的单元格数。分页符必须复制页眉和页脚。
所以,你的表格看起来像这样:
HEADER
<table>
<tr><td>Cell Data</td></tr>
<!-- A bunch of rows -->
<tr><td>Cell Data</td></tr>
<tr>
<td>
Cell Data
<div class="pagebreak">
<div>FOOTER</div>
<!-- Print page will break here -->
<div class="header">HEADER</div>
</div>
</td>
</tr>
<tr><td>Cell Data</td></tr>
<!-- A bunch of rows -->
<tr><td>Cell Data</td></tr>
<tr>
<td>
Cell Data
<div class="pagebreak">
<div>FOOTER</div>
<!-- Print page will break here -->
<div class="header">HEADER</div>
</div>
</td>
</tr>
</table>
FOOTER
然后将以下样式添加到您的页面:
<style type="text/css">
@media all
{
.pagebreak { display:none; }
}
@media print
{
.pagebreak { display:block; }
.pagebreak div.header { display:block;page-break-before:always; }
}
</style>
编辑:我更新了HTML(希望)更清楚地说明需要做什么。
答案 2 :(得分:-1)
您创建一个母版页,您可以在其中定义页眉区域和页脚区域,并在每个区域中取一个div并在页面后面的代码中访问该div,并将生成的html放在div中 像这样 - div.InnerHtml ==“你的字符串包含html表”