web打印datagrid的通用类

来源:互联网 发布:手机阿里云系统好用吗 编辑:程序博客网 时间:2024/05/16 09:51

/// <summary>
  /// 打印datagrid的通用类
  /// </summary>
  /// <param name="ds">要打印的datagrid数据源</param>
  /// <param name="dg">要打印的datagrid</param>
  /// <returns></returns>

public string Print(DataSet ds,DataGrid dg)

  {
   if(ds.Tables [0].Rows.Count >0)//判断是否有数据
   {
    if(dg.HasControls() )//判断dg是否包含有控件
    {
     DataGrid dg1 = new DataGrid ();//创建新的datagrid
     dg1 = dg;
     dg1.AllowPaging=false;
     dg1.PageSize = ds.Tables [0].Rows .Count; //去掉分页
     StringBuilder htm1 = new StringBuilder ();
     StringBuilder htm2 = new StringBuilder ();
     StringBuilder sb = new StringBuilder ();
     //创建打印页面
     htm1.Append ("<html><head><meta name=vs_targetSchema content=/"http://schemas.microsoft.com/intellisense/ie5/"><title>打印</title>");
     htm1.Append ("<meta http-equiv=/"Content-Type/" content=/"text/html; charset=gb2312/"><!--media=print 这个属性可以在打印时有效--><style media=print>.Noprint{display:none;}");
     htm1.Append (".PageNext{page-break-after: always;}</style><style>.tdp{    border-bottom: 1 solid #000000;    border-left:  1 solid #000000;    border-right:  0 solid #ffffff;");
     htm1.Append ("border-top: 0 solid #ffffff;}.tabp{    border-color: #000000 #000000 #000000 #000000;    border-style: solid;    border-top-width: 2px;    border-right-width: 2px;    border-bottom-width: 1px;");
     htm1.Append ("  border-left-width: 1px;}.NOPRINT {font-family: /"宋体/";font-size: 9pt;}</style></head><body ><center class=/"Noprint/" >  <p>  <OBJECT  id=WebBrowser  classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2  height=0  width=0>");
     htm1.Append (" </OBJECT>  <input  type=button  value=打印          onclick=document.all.WebBrowser.ExecWB(6,1)>  <input  type=button  value=直接打印  onclick=document.all.WebBrowser.ExecWB(6,6)>");
     htm1.Append ("<input  type=button  value=页面设置  onclick=document.all.WebBrowser.ExecWB(8,1)></p>  <p>    <input  type=button  value=打印预览  onclick=document.all.WebBrowser.ExecWB(7,1)>");
     htm1.Append (" <br/>    </p>  <hr align=/"center/" width=/"90%/" size=/"1/" noshade></center><table width=/"90%/" border=/"1/" align=/"center/" cellpadding=/"0/" cellspacing=/"0/"  class=/"tabp/"><tr>");
     System.IO.StringWriter  tw = new StringWriter  ();//创建一个字符串输出流
     System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);//输出html文本的输出流
     dg1.RenderControl (hw);//将dg1的所有控件信息写入输出流,并保存在tw中
     htm2.Append ("</tr></table></body></html>");
     return(htm1.ToString () + tw.ToString () + htm2.ToString ()+"<center><a href=javascript:history.back(-1)>关闭 </a></center>");
    }
   }
  return("<script language = javascript>alert('表中没有数据!')</script>");
  }

原创粉丝点击