アイテムの特定のリストの現在のタスクの一部として、ユーザーはそれらのいくつかを選択し、選択したアイテムの「印刷」を呼び出すことができます。
選択した項目ごとに、詳細を印刷する必要があります。これは、販売システムで選択されたアイテムの請求書を印刷することに似ています。
各レコードの詳細を書き込む部分ビューを作成しましたが、要件に従って使用する方法がわかりません。
私の要件を達成するために、document.ready で jQuery print を呼び出すことはできますか?
@Levib が示唆したように、PrintView で部分ビューを呼び出します。PrintView の document.reay 関数は window.print を呼び出しています。しかし、「印刷」を起動しようとすると、印刷ダイアログが表示されません。
これが私の見解です。
@section Styles
{
<link rel="stylesheet" href="AdminStyle.css" type="text/css" media="all" />
<link rel="stylesheet" href="AdminPrintOrder.css" type="text/css" media="print" />
}
@foreach (var item in Model)
{
<div id="content" style="page-break-before: always">
@{Html.RenderPartial("_OrderDetailView", item);}
</div>
}
@section scripts
{
<script type="text/javascript">
$(document).ready(function () {
debugger;
window.print();
});
</script>
}
そして、私の印刷インボーカービューは
function printInvoices(){
$.ajax({
type: 'POST',
url: '/Batch/PrintInvoices',
data: '{ "allocationId" : "' + unSelected.toString() + '"}',
contentType: "application/json; charset=utf-8",
traditional: true,
success: printedView,
error: errorInSubscribing
});
}
印刷ダイアログに入力するために ajax reposne を処理する必要がありますか?
function printedView() {
unSelected = [];
}
そしてコントローラーアクションは
[HttpPost]
public ActionResult PrintInvoices(string allocationId)
{
var context = new BatchContext();
var orderDetails = context.GetOrderDetails(RetriveList(allocationId));
return View(orderDetails);
}