如何仅打印部分网页?

时间:2013-04-09 18:46:47

标签: asp.net-mvc

我在JQuery对话框中有一个部分视图,侧面有按钮链接,顶部有文本链接,下面有网格。

我希望顶部的一个链接是一个“打印”链接,它打印出网格没有别的。

JavaScript的window.print()打印整个页面。如何只打印网格?有没有办法告诉打印方法“只打印这个div的内容”?

如果我需要创建一个单独的“可打印网格”页面,如何避免打印我认为需要在页面上的“打印按钮”?

谢谢!

2 个答案:

答案 0 :(得分:2)

避免打印任何内容的规范方法是添加一个打印样式表,将不应打印的元素设置为 display:none

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

在print.css中,您可以将现有的CSS样式重新定义为 display:none ,并且可以添加一个.DoNotPrint类,您可以将其应用于您不想打印的任何内容。

.DoNotPrint
{
    display: none;
}

答案 1 :(得分:2)

这完全取决于您的实现,但我发现实现此目的的最简单方法是包含这样的打印特定样式表:

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

该样式表会隐藏除表格之外的所有内容,除了要显示和隐藏哪些元素外,还不需要任何特殊内容。

经过进一步考虑后,您还可以执行以下操作:

创建一个单独的页面,其中仅包含具有网格的部分。当用户点击打印按钮时,您打开新窗口并加载window.print()