【问题标题】:Print and Print Preview missing data in IE8IE8 中的打印和打印预览缺失数据
【发布时间】:2012-09-20 14:40:58
【问题描述】:

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

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" 添加到&lt;link&gt;

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

那没用。

【问题讨论】:

  • 您对&lt;td&gt;s 以及您插入到列中但在 IE 中不起作用的内容都应用了哪些 CSS?
  • 没有任何内容(如您在上面的示例中所见),因为标签正在获取 HTML 文本,并使用大量 css 类完全格式化。最终打印出来的树有很多颜色,甚至是小图标,诸如此类
  • 您在页面上声明了doctype 吗?
  • ttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • 是的,但这是一件坏事。这意味着它处于 quirksmode(这意味着在这种情况下,您正在定义一个 DOCTYPE 但没有使您的代码保持真实)。通过validator.w3.org 运行页面并修复所有市长错误。完成后,再次发出警报,看看它是否出现CSS1CompatCSS2Compat。在那之前,没有什么可以确定 IE8 会做任何事情。

标签: asp.net html printing internet-explorer-8


【解决方案1】:

总结一下:

  • 检查代码是否对带有validator 的 DOCTYPE 无效
  • 如果无效,IE 将以 quirksmode 呈现,这绝不是一件好事。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签