WebBrowser 控件技术
• 打印操作的实现
此功能的实现主要是利用WebBrowser控件的函数接口来实现打印、打印预览(默认的)、
页面设置(默认的)。
以下是引用片段:
<object ID=‘WebBrowser1’ WIDTH=0 HEIGHT=0 CLASSID=‘CLSID:8856F961-340A-11D0-A96B-00C04FD705A2’> //打印 WebBrowser1.ExecWB(6,1); //打印设置 WebBrowser1.ExecWB(8,1); //打印预览 WebBrowser1.ExecWB(7,1); //直接打印 WebBrowser1.ExecWB(6,6);
【实例代码】 //自定义类PrintClass public string DGPrint(DataSet ds) { //DGPrint执行的功能:根据DataTable转换成对应的HTML对应的字符串 DataTable myDataTable=new DataTable(); myDataTable=ds.Tables[0]; int myRow=myDataTable.Rows.Count; int myCol=myDataTable.Columns.Count; StringBuilder sb=new StringBuilder(); string colHeaders="<html><body>"+"<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'VIEWASTEXT></object>" +"<table><tr>"; for(int i=0;i<myCol;i++) { colHeaders +="<td>"+ myDataTable.Columns[i].ColumnName.ToString()+"</td>"; } colHeaders += "</tr>"; sb.Append(colHeaders); for(int i=0;i<myRow;i++) { sb.Append("<tr>"); for(int j=0;j<myCol;j++) { sb.Append("<td>"); sb.Append(myDataTable.Rows[i][j].ToString().Trim()); sb.Append("</td>"); } sb.Append("</tr>"); } sb.Append("</table></body></html>"); colHeaders=sb.ToString(); colHeaders+="<script languge='Javascript'>WebBrowser.ExecWB(6,1); window.opener=null;window.close();</script>"; return(colHeaders); }
|
//页面:打印按钮事件
以下是引用片段: PrintClass myP = new PrintClass(); Response.Write(myP.DGPrint(Bind()); |
在把DataGrid转换为对应的HTML代码时,如果存在按钮列就会报错,最好把这一列隐藏,一般只能转换数据列。其次要注意分页问题,一般只能打印当前一页,最好在打印之前除掉分页