我在C#MVC中开发的View上实现了分页。分页是用AJAX实现的。用户可以选择视图页面上的记录,当他们单击页面上的“打印”按钮时,将只打印那些选定的记录。
为了实现这一点,我将所选记录移动到布局页面中的<div id="ToPrintContainer" >
。
单击打印按钮
我将<div id="ToPrintContainer">
克隆到我的视图中。
将.divPrintDetailed
的属性设为display:none
。
window.print()
删除display:none
.divPrintDetailed
最后删除或清空复制的记录。
<div id="ToPrintContainer" >
将仅包含用户想要打印的记录。
<div class ="divPrintDetailed">
将保留所有记录。
问题在于打印我看到空白页。
如果我评论$('.copiedDivForPrint').empty();
我在打印窗口中看到了所选的记录,这就是我想要发生的事情,但复制的记录不会从视图中清除。
下面粘贴的是jQuery代码。
$('#btnPrnt').unbind('click').bind("click", function () {
// copy the selected records into the view
$("#divTestPrintContainer").clone().addClass('copiedDivForPrint').insertAfter('.StatsCriteria');
// don't display the entire records on print
$('.divPrintDetailed').css({ 'display': 'none' });
window.print();
$('.divPrintDetailed').css({ 'display': '' });
$('.copiedDivForPrint').empty();
return false;
});
答案 0 :(得分:1)
有时从完全不同的方向来看更容易:
1)将您想要的内容复制到隐藏的Iframe(包括样式表声明 - 制作虚拟页面包装器存根)。
2)从Iframe打印。
答案 1 :(得分:0)
在window.print()
修复问题后延迟执行代码。
setTimeout()
来救我。
修复:
setTimeout(function () {
$("#cpdDivFPrt").remove();
}, 500);