以下に示すように、機能しているJavaScript関数があります。注-行を変更しました(インターネットの例から)
WinPrint.document.write(printContent.innerHTML);
に
WinPrint.document.write(printContent.outerHTML);
私はそれをすることになっているとは思わないが、innerhtmlではグリッドはまったくフォーマットされていなかったが、outerhtmlの値では問題なかった...
要約すると
- なぜ私はすべての例が示すように innerhtml を使用できないのですか - 私のコードのどこかにバグがあるに違いありません
ありがとう、ダモ
Javascript
<script type="text/javascript">
function PrintGridData(GridToPrint) {
var printContent = document.getElementById(GridToPrint);
var windowUrl = 'about:blank';
var UserLoggedIn = $("#lblUser").text()
var now = new Date();
var strDateTime = [[AddZero(now.getDate()), AddZero(now.getMonth() + 1), now.getFullYear()].join("/"), [AddZero(now.getHours()), AddZero(now.getMinutes())].join(":"), now.getHours() >= 12 ? "PM" : "AM"].join(" ");
var windowName = 'Report';
var AuditPrintDetail = 'Report ' + UserLoggedIn + " " + strDateTime;
var WinPrint = window.open(windowUrl, windowName, 'left=300,top=300,right=500,bottom=500,width=1000,height=500');
WinPrint.document.write('<' + 'html' + '><head><link href="cssreference" rel="stylesheet" type="text/css" /><link href="assets/css/Main.css" rel="stylesheet" type="text/css" /> <title>' + AuditPrintDetail + '</title> </head><' + 'body style="background:none !important"' + '>');
WinPrint.document.write(printContent.outerHTML);
WinPrint.document.write('<' + '/body' + '><' + '/html' + '>');
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
}
function AddZero(num) {
return (num >= 0 && num < 10) ? "0" + num : num + "";
}