2010-01-04 37 views
0

我在asp.net 2.0的页面中有一个标签控件,并且有一个按钮打印如何在asp.net中打印标签或面板的内容?

点击打印按钮我需要打印标签的内容,我也需要相同的面板。

是否可以实现这一点?

如果是的话那么该如何实现呢?

请帮忙。

回答

1

您需要添加一些客户端JavaScript到您的打印按钮来执行浏览器的打印命令。下面的javascript可以用来打印整个文档页面,并且将是一个很好的开始。注意:除非使用第三方组件,否则不可能在不显示打印对话框的情况下执行此操作。

// Print Page 
window.print(); 

如果您只想打印页面的某些部分,您可以实现这两种方式。首先,您可以将内容打印到隐藏的iframe中,然后仅打印该帧。你只能在框架内使用与上述相同的代码。其次,您可以使用媒体样式打印样式表,这是一种仅在打印时适用的CSS。在此表格内,您可以将想要打印的样式设置为正常,并将不想打印的样式设置为“显示:无”。以下链接包含有关打印样式表的更多信息。

http://www.webcredible.co.uk/user-friendly-resources/css/print-stylesheet.shtml

1

什么Window.Print()方法?因为execcommand方法不会在其他浏览器中使用IE。使用CSS媒体选项来控制打印区域。

1

还有一种方法可以打开新窗口并填充要打印的div的内容并在该页面上打印链接/按钮。 例如:

var win = window.open(...) win.document.body.appendChild(document.getElementById('divToPrintId'))

这是代码将如何看起来像这种方法用于打印页面的内容/一部分。

1

下面的代码可以使用按钮onclick事件

ClientScript.RegisterStartupScript(this.GetType(), "PrintOperation", "PrintGridData()", true); 

上面的链接会调用一个名为PrintGridData(功能),这是写在头部分如下

<script type="text/javascript"> 
    function PrintGridData() 
    { 
     var prtGrid = document.getElementById('<%=GridView.ClientID %>'); 
     prtGrid.border = 0; 
     var prtwin = window.open('', 'PrintGridViewData', 'left=100,top=100,width=1000,height=1000,tollbar=0,scrollbars=1, status=0,resizable=1'); 
     prtwin.document.write(prtGrid.outerHTML); 
     prtwin.document.close(); 
     prtwin.focus(); 
     prtwin.print(); 
     prtwin.close(); 
    } 
</script> 

在这个脚本也只会打印DIV名称GridView等部分不会打印