1

在特定屏幕中,我需要让用户打印出一些数据。由于显示的数据比较复杂,所以使用了一个标签:

lblTree.Text = stringHTML;

使用动态构造的 HTML 字符串显示树。最后的字符串是 52 000 个字符长。我不认为这很重要,但我想我会解释一下背景。在 aspx 中,它看起来像这样:

<table border="0" cellpadding="0" cellspacing="0">
    <tr>
        <td colspan="3" align="left" class="PrintTBLHeader"><br />report as of 20/09/2012 : <br /><br /></td>
    </tr>
    <tr>
        <td colspan="3"><br /><asp:Label runat="server" ID="lblTree"></asp:Label><br /><br /></td>
    </tr>
    <tr>
        <td colspan="3" align="left" class="PrintTBLHeader"><br />2nd title:<br /><br /></td>
    </tr>
    <tr>
        <td colspan="3"><br /><asp:Label runat="server" ID="lblMPMtree"></asp:Label></td>
    </tr>
</table>

问题是这样的:当我打开打印预览时,它应该显示 6 页(就像在 Firefox 和 chrome 中一样——它们工作正常),但是 IE8 的打印预览只显示了 3 页。

lblTree 在第一页的末尾被剪切然后在第二页上,而不是显示 lblTree 的其余部分,它以“第二个标题”开头(上面示例中的 tr #3)

我发现了一些与此类相关的文章,其中解决方案正在添加media="print"<link>.

<link rel="stylesheet" type="text/css" href="..." media="print" />

那没有用。

4

1 回答 1

1

总结一下:

  • 使用验证器检查代码是否对 DOCTYPE 无效
  • 如果无效,IE 将以 quirksmode 呈现,这绝不是一件好事。
于 2012-09-25T13:33:04.917 回答