0

さて、質問はより理論的なものなので、コードはあまりありません。私が持っているのは、予約の詳細を表示するグリッドビューを持つページBookingSlip.aspxと他のページです。そのグリッドの最初の列は、にリンクするハイパーリンクフィールドで、予約番号をクエリ文字列として渡します。には、私が単に呼び出したボタンがあり、印刷用のWindowsダイアログボックスをポップアップするだけで、ユーザーが必要な手順([OK]をクリックする、プリンターを選択するなど)に従うと、Windows(またはユーザーが使用しているOS)が処理します残り。今まではすべて順調です。BookingDetails.aspxBookingSlip.aspxBookingSlip.aspxbtn_PrintWindow.Print

しかし、私がしなければならないことは、ユーザーが複数の予約番号を選択できるようにすることですBookingDetails.aspx(グリッドビューにチェックボックス列を追加することによって、それは問題ではありません。私はすでにそれを行いました)。次に、選択したすべてのアイテムに対してBookingSlip.aspx実行する必要があります。つまり、各予約伝票は、Windows 印刷ダイアログがユーザーに 1 回だけ表示され、適切なオプションを選択すると、すべてのアイテム (選択されたアイテムが印刷される必要がある) という制約付きで印刷する必要があります。

2つのことが思い浮かびます。

  1. グリッド ビューで選択した各アイテムを開きBookingSlip.aspx?BN={theSelectedBookingNumber}、一度に印刷します。問題は、ユーザーが 10、12、または 20 を選択した場合、ブラウザで一度に 12 ページが開いてしまうことです。もう1つの問題は、window.Print個々のページで呼び出す必要があり、ウィンドウが印刷ダイアログボックスを10回、12回、または20回ポップアップすることです(選択したアイテムと開いたページによって異なります)。これは望ましくありません。

  2. 2つ目は、のようなもので単一のページを開き、BookingSlip.aspx?BN={theFirstSelectedBookingNumber}それを印刷してから、別のページを開かず、Server.Transferまたはそのようなものを使用して開くBookingSlip.aspx?BN={theSecondSelectedBookingNumber}などです..
    これの問題は、各ページ転送で呼び出すとWindow.Print、ユーザー毎回印刷ダイアログ ボックスが表示されますが、これは望ましくありません。

したがって、基本的に、ユーザーが印刷ダイアログボックスでデフォルトを指定できる方法を探しています。これらのデフォルトを使用すると、グリッドビューのアイテムではなく、グリッドビューの各(選択された)アイテムが印刷され、ページBookingSlip.aspxは次のようになります。選択した予約番号ごとに印刷されます。

それで、これらすべてのプリントをキューに入れる方法はありますか? または、私が書いた2つ以外の方法はありますか?私が少し漠然としている場合は、コメントしてください。明確にします。

4

1 に答える 1

0

BookingSlip.aspx複数の予約番号を渡すことができるようにページをリファクタリングして、指定された各予約番号の予約伝票をページに表示できますか?

そうすれば、多くのWebページではなく1つのWebページを印刷するだけで済みます。

各予約が独自のページに表示されるようにするpage-break-afterには、適切なコンテナ要素(<div>...</div>おそらく)でCSSプロパティを使用できます。page-break-afterチェックの基本的なチュートリアルについては、こちらをご覧ください

于 2012-08-29T14:03:49.213 に答える