2012-08-29 121 views
0

好的,這個問題更具理論性,所以沒有太多的代碼。 我有一個頁面BookingSlip.aspx和其他頁面BookingDetails.aspx有一個gridview顯示預訂的細節,該網格的第一個col是一個超鏈接字段鏈接到BookingSlip.aspx,傳遞在查詢字符串預訂號碼。在BookingSlip.aspx中有一個按鈕btn_Print,我簡單地稱其爲Window.Print,它只是彈出用於打印的窗口對話框,並且當用戶按照所需的步驟(點擊確定,選擇打印機等)時,Windows(或任何操作系統用戶使用)處理其餘的。直到現在一切都很好。如何使用jquery和/或asp.net處理打印/打印隊列?

但我要做的,就是讓用戶在BookingDetails.aspx選擇多個預約號(通過在GridView添加一個複選框列,這不是一個問題,我這樣做的話),然後將所有選定項目,應該執行BookingSlip.aspx,也就是說,每張預約單都應該打印,並且約束條件是該用戶只出現一次窗口打印對話框,並且一旦他選擇了適當的選項,所有項目(所選擇的項目應該被打印)。

想到兩件事情。

  1. 對於網格視圖中的每個選定項目,打開BookingSlip.aspx?BN={theSelectedBookingNumber},然後一次打印全部。問題在於,如果用戶選擇10,12或20,那麼在瀏覽器中立即打開12個頁面時非常不愉快。另一個問題是,我必須在個別頁面上撥打window.Print,並且窗口將彈出10,12或20次打印對話框(取決於所選項目和頁面打開),這是我不想要的。

  2. 二是開放式的東西,如BookingSlip.aspx?BN={theFirstSelectedBookingNumber}單頁,打印出來,然後不要打開另一個網頁,只用Server.Transfer或類似的東西,打開BookingSlip.aspx?BN={theSecondSelectedBookingNumber}等..
    的問題,這就是,如果我在每次傳輸頁面時調用Window.Print,則每次都會向用戶顯示一個打印對話框,這是我不想要的。

所以,基本上我正在尋找一種方式,在這裏用戶可以指定在打印對話框中的默認值,並用這些默認值,在GridView每個(選擇)項目將被打印,而不是從gridview的項目而是,頁面BookingSlip.aspx將針對所選的每個預訂號碼進行打印。

那麼,有沒有一種方法可以排列所有這些打印?或者我寫的兩個人有沒有其他的方式?如果我有一點點空缺,請評論,我會澄清。

回答

0

您是否可以重構BookingSlip.aspx頁面,以便您可以傳入多個預訂號碼,然後該頁面將顯示每個提供的預訂號碼的預訂單?

這樣你只需要打印一個網頁而不是很多。

爲了確保每個預訂都出現在它自己的頁面上,您可以在合適的容器元素上使用CSS屬性page-break-after(也許是<div>...</div>)。有關page-break-after的基本教程,請查詢here