打印gridview

  今天公司让做一个打印功能,就是把gridview中的内容打印出来,再网上查了好多方法,最后决定把gridview包含到一个div中,然后将div的html提交到另一个页面,最终打印这个页面.

打印指定内容:
<html>
<head>
<script type="text/javascript" language="javascript">
function printPage() {
var newWin = window.open('printer','','');
var titleHTML = document.getElementById("printdiv").innerHTML;
newWin.document.write(titleHTML);
newWin.document.location.reload();
newWin.print();

newWin.close();
}
</script>
</head>
<body>
<div id="printdiv">
 <table class="sontable" cellspacing="0" cellpadding="0" style="width: 13%">
                            <tr>
                                <td style="width: 700px; height: 161px">
                                   <asp:GridView ID="GridData"  runat="server" CellPadding="3" CellSpacing="0"  BorderWidth="1px" BackColor="LightSteelBlue" BorderColor="White" BorderStyle="None" Font-Size="12px" Width="543px" Height="20px"  OnRowDataBound="GridData_RowDataBound">
                                    <RowStyle BackColor="GhostWhite" BorderColor="#006699" />
                                        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" Wrap="True" />
                                        <HeaderStyle Height="25px" BackColor="#006699" Font-Bold="True" ForeColor="White" HorizontalAlign="Center" CssClass="Freezing"/>
                                </asp:GridView>                                    
                                </td>
                            </tr>
                        </table>
</div>
<a href="javascript:;" οnclick="printPage()">打印</a>
</body>
</html>

代码就是这样的.

第二种方法是,先将页面上的除了你要打印的标签外隐藏,接着执行打印,在打印后将页面上的标签全部显示

代码如下:
function printer()
{
  
 beforeprint();
 window.focus();
 window.print()
 afterprint();
}

function beforeprint()
{

 for(i = 0; i < document.all.length; i++)
 {
 
    if ((document.all(i).id.indexOf("div_table_")!=-1) && document.all(i).tagName=="TABLE")

//其中"div_table_"检测你要打印的标签ID
    {
     document.all(i).style.display="none";
    }
 }
}

function afterprint()
{

 for(i = 0; i < document.all.length; i++)
 {
    if ((document.all(i).id.indexOf("div_table_")!=-1) && document.all(i).tagName=="TABLE")
    {
      document.all(i).style.display="block";
    }
 }
}

调用printer()就可以了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值