打印所选元素时出现问题

时间:2013-07-18 19:11:29

标签: jquery html

我在C#MVC中开发的View上实现了分页。分页是用AJAX实现的。用户可以选择视图页面上的记录,当他们单击页面上的“打印”按钮时,将只打印那些选定的记录。  为了实现这一点,我将所选记录移动到布局页面中的<div id="ToPrintContainer" >

单击打印按钮

  1. 我将<div id="ToPrintContainer">克隆到我的视图中。

  2. .divPrintDetailed的属性设为display:none

  3. window.print()

  4. 删除display:none

  5. .divPrintDetailed
  6. 最后删除或清空复制的记录。

  7. <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;
        });
    

2 个答案:

答案 0 :(得分:1)

有时从完全不同的方向来看更容易:

1)将您想要的内容复制到隐藏的Iframe(包括样式表声明 - 制作虚拟页面包装器存根)。

2)从Iframe打印。

答案 1 :(得分:0)

window.print()修复问题后延迟执行代码。

setTimeout()来救我。

修复:

setTimeout(function () {
            $("#cpdDivFPrt").remove();
        }, 500);