2010-01-04 39 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等部分不會打印