2011-08-09 40 views
0

我有一個按鈕在asp.net(c#),我想要點擊這個按鈕後,我可以從我的HTML表中打印更新面板,我只想打印我的HTML表並非所有頁面 是否有任何組件? 感謝名單非常Asp.net..Printing

回答

2

2種方式處理:

  • CSS定義打印介質
  • 報告服務,直接從存儲過程/直表 命中的數據並打印的表格佈局數據。

基於

直接從W3C OP評論:

http://www.w3.org/TR/CSS2/media.html

專門關於打印介質閱讀,這意味着你可以與你的asp.net項目定義.css文件媒體類型「打印」:

@media print { 
    /* style sheet for print goes here */ 
} 

這很好,因爲您現在可以定義CSS來隱藏

display:none

除了你所選擇的DIV /表:你的屏幕上的所有元素

#myDiv { 
display: block; 
} 

在你的asp.net頁面你有這樣的定義:

<link rel="stylesheet" media="print" title="Printer-Friendly Style" 
     type="text/css" href="printStyle.css"> 

這告訴您的應用程序在打印頁面時使用printStyle.css文件。 一旦你嘗試打印應用程序將使用printStyle和所有你定義的格式和樣式。

這裏是一個很好的例子:http://www.4guysfromrolla.com/demos/printMediaCss.html

對於第二點,如果你正在運行SQL Server報告服務是免費的。當然,您需要設置並部署報告。它有點超出了這個問題的範圍。如果您確實有報告服務,您可能想要打開一個新話題並提出相關問題。 否則,只需創建一個打印樣式的CSS文件。

+0

請進一步解釋如果可能的話 – mah

0

您可以使用CSS @print Media Type來隱藏不想打印的東西。

查看the w3 Schools tutorial的基本概述。

+0

是它我還是別人鄙視w3schools? – JonH

+0

除此之外,我不會將它們用於任何其他的基本概述;有很多更好的教程網站。 不要讓我開始在CodeProject,雖然... –

+0

公平的... – JonH

0

您可以使用CSS類來定義像@print,@screen這樣的媒體類型,然後用這些類標記webapge的適當部分。

對於要執行打印的按鈕,您需要將:onClientClick="window.print()"添加到按鈕的定義中。

使用CSS這樣的:

@media print 
{ 
    printOnly {display:block;} 
    screenOnly {display:none;} 
} 

@media screen 
{ 
    printOnly {display:none;} 
    screenOnly {display:block;} 
} 

然後簡單裝飾你的DIV或其他元素與類:

<div class="screenOnly">this will not print but will show on screen</div>

<div class="printOnly">this will not show on screen but will print</div>

+0

我可以想你解釋更多關於你的答案的第一部分嗎?這部分是相關的這部分我的問題,我只想打印我的表格不是全部我的頁面?你能解釋更多嗎? – mah

+0

我用一個例子更新了我的答案。 – Leon