【问题标题】:How to print paginated gridview data如何打印分页的gridview数据
【发布时间】:2010-03-26 13:15:47
【问题描述】:

我有一个 HTML 按钮,单击该按钮后,我将调用以下 javascript 函数,并传递我的 gridview 所在的 div id。

function CallPrint(strid)

{  
var prtContent = document.getElementById(strid);

var WinPrint = window.open('', '', 'left=0,top=0,width=900,height=600,toolbar=1,scrollbars=1,status=0');

WinPrint.document.write( prtContent.innerHTML );

WinPrint.document.close();

WinPrint.focus();

WinPrint.print();

WinPrint.close();  


}  

因为我的 gridview 有大约 3000 条记录我正在对结果进行分页。所以当我使用上面的代码打印时,我只能看到第一页的记录被打印出来。所以为了打印我的所有记录考虑在页面上放置 2 个网格视图(一个具有 Allowpaging='true',另一个具有 'false'),我将相同的数据源绑定到它们。具有 Allowpaging='false' 的网格视图设置为“显示” :没有' 在页面加载和上面的 CallPrint() 方法中,我想将此 gridview 的显示设置为“block”,另一个设置为“none”。但它似乎无法正常工作,因为用户将看到所有记录浏览器也不仅在打印的文档中。

我还考虑过使用会话来存储我的 gridview 并将其打印在另一个页面中,如提到的 here。由于我的数据很大(大约 3000 条记录),我很困惑这是否会影响性能......

有人可以建议我如何打印所有数据吗?

谢谢。

【问题讨论】:

    标签: gridview printing


    【解决方案1】:

    我会使用其他页面方法而不是 2 个网格视图。好处是每个人的视图状态都更小,只有点击打印的人才能看到 3k 记录的任何性能影响,老实说 3k 应该渲染得相当快。另一种选择是 iframe 的第二个 gridview,并使用一些 jquery 来打印 iframe,我过去使用过这个库 -> http://projects.erikzaadi.com/jQueryPlugins/jQuery.printElement/

    【讨论】:

      【解决方案2】:
      function printItn() {
              //you can put your contentID which is you want to print.
      
              var printContent = document.getElementById('<%= pnlForm.ClientID %>');
              var windowUrl = 'about:blank';
              var uniqueName = new Date();
              var windowName = 'Print' + uniqueName.getTime();
      
              //  you should add all css refrence for your Gridview. something like.
      
              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="gridviewcssrefrence" rel="stylesheet" type="text/css" /></head><'+'body style="background:none !important"'+'>');
      
              WinPrint.document.write(printContent.innerHTML); 
              WinPrint.document.write('<'+'/body'+'><'+'/html'+'>');
              WinPrint.document.close();
              WinPrint.focus();
              WinPrint.print();
              WinPrint.close();
              }
      

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 2017-01-08
        • 2023-03-25
        • 2018-03-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多