2010-11-13 76 views
0

在我們的Web應用程序中,我們有多個網頁。觸點模塊是廣泛使用的模塊之一。整個模塊由3頁組成。在按鈕上打印多個頁面在ASP.net中單擊

顯示第一頁與幾個服務器控件的聯繫方式,第二頁是接觸史與所有有關的接觸,第3頁又有些接觸的更多細節的歷史。

有沒有什麼辦法,當用戶點擊任何這些頁面的一個按鈕,它打印所有的3頁。與此聯繫人的內容。請注意這些不是靜態頁面。聯繫人詳細信息基於Oracle數據庫中的數據顯示。

+0

如何在網頁中連接模塊?那麼我的問題是你如何展示在一起?幀iframe阿賈克斯?或者你不顯示他們全部,但當時只有一個?你贏了把它們印在一起 – Aristos 2010-11-13 23:04:16

回答

1

如果這些頁面是動態生成的,你需要做的是創建生成這些網頁相結合的全部3個4個頁面,然後包括URL,在每個3頁在該頁你有作爲如下:

<link rel=alternate media=print href="urlToCombinePage"> 

這將指示瀏覽器使用4個網頁,隨時有人想打印的,你已經有3頁之一。替換應該自動發生,並且在用戶獲得打印文檔之前不應該引起用戶的注意。

我能想到的其他方式是重寫所有三個頁面並將它們合併爲一個,然後您可以使用Javascript來顯示和隱藏部分頁面,並且可以使用@ media = print css樣式表在文檔打印時顯示它們全部。

0

理想情況下,您可以將頁面轉換爲用戶控件,然後添加一個包含所有新控件的新頁面。

另一種方式我這樣做時,補防的最後期限,以避免對網頁的集合改寫成用戶控件是使用一個單獨的頁面,我打開一個新的窗口。

這是通過網頁的網址,通過參數(或會話 - 你的選擇)來顯示。

流程則是:

foreach(var page in pages) 
    Server.Execute(page, Response.Output); 

// Inject a window.print() command via a script block 

這是一個有點破解-y爲你解析多個完整的網頁這顯然是無效的HTML,但如果你已經有了標準化的樣式,適合平面媒體的風格和你的網頁不是非常複雜,你會擺脫它。

如果你想更徹底,過程反過來每一頁,串聯屍體讓你有一個單頁。

相關問題