/// <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=打印 οnclick=document.all.WebBrowser.ExecWB(6,1)> <input type=button value=直接打印 οnclick=document.all.WebBrowser.ExecWB(6,6)>");
htm1.Append ("<input type=button value=页面设置 οnclick=document.all.WebBrowser.ExecWB(8,1)></p> <p> <input type=button value=打印预览 οnclick=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>");
}