さて、質問はより理論的なものなので、コードはあまりありません。私が持っているのは、予約の詳細を表示するグリッドビューを持つページBookingSlip.aspx
と他のページです。そのグリッドの最初の列は、にリンクするハイパーリンクフィールドで、予約番号をクエリ文字列として渡します。には、私が単に呼び出したボタンがあり、印刷用のWindowsダイアログボックスをポップアップするだけで、ユーザーが必要な手順([OK]をクリックする、プリンターを選択するなど)に従うと、Windows(またはユーザーが使用しているOS)が処理します残り。今まではすべて順調です。BookingDetails.aspx
BookingSlip.aspx
BookingSlip.aspx
btn_Print
Window.Print
しかし、私がしなければならないことは、ユーザーが複数の予約番号を選択できるようにすることですBookingDetails.aspx
(グリッドビューにチェックボックス列を追加することによって、それは問題ではありません。私はすでにそれを行いました)。次に、選択したすべてのアイテムに対してBookingSlip.aspx
実行する必要があります。つまり、各予約伝票は、Windows 印刷ダイアログがユーザーに 1 回だけ表示され、適切なオプションを選択すると、すべてのアイテム (選択されたアイテムが印刷される必要がある) という制約付きで印刷する必要があります。
2つのことが思い浮かびます。
グリッド ビューで選択した各アイテムを開き
BookingSlip.aspx?BN={theSelectedBookingNumber}
、一度に印刷します。問題は、ユーザーが 10、12、または 20 を選択した場合、ブラウザで一度に 12 ページが開いてしまうことです。もう1つの問題は、window.Print
個々のページで呼び出す必要があり、ウィンドウが印刷ダイアログボックスを10回、12回、または20回ポップアップすることです(選択したアイテムと開いたページによって異なります)。これは望ましくありません。2つ目は、のようなもので単一のページを開き、
BookingSlip.aspx?BN={theFirstSelectedBookingNumber}
それを印刷してから、別のページを開かず、Server.Transfer
またはそのようなものを使用して開くBookingSlip.aspx?BN={theSecondSelectedBookingNumber}
などです..
これの問題は、各ページ転送で呼び出すとWindow.Print
、ユーザー毎回印刷ダイアログ ボックスが表示されますが、これは望ましくありません。
したがって、基本的に、ユーザーが印刷ダイアログボックスでデフォルトを指定できる方法を探しています。これらのデフォルトを使用すると、グリッドビューのアイテムではなく、グリッドビューの各(選択された)アイテムが印刷され、ページBookingSlip.aspx
は次のようになります。選択した予約番号ごとに印刷されます。
それで、これらすべてのプリントをキューに入れる方法はありますか? または、私が書いた2つ以外の方法はありますか?私が少し漠然としている場合は、コメントしてください。明確にします。