打印easyui的datagrid内容
来源:互联网 发布:淘宝网销售量最大是 编辑:程序博客网 时间:2024/05/21 17:22
在使用easyui插件的时候,使用最多的应该是datagrid插件。有时候根据客户需求,可能需要将datagrid内容进行打印,这时候如果直接调用window.print,可能由于easyui的datagrid存在滚动条而导致滚动条其他部分打印不出来的问题。通过百度有编“easyui基于web的打印实现”可以基本实现打印,但是还是存在一些问题,比如多表头情况打印不了,某列有调用脚本的,将会出现undefined等等。
通过修改该文的代码,就可以实现直接使用脚本打印easyui的datagrid内容,代码如下:
print.js
// strPrintName 打印任务名// printDatagrid 要打印的datagridfunction CreateFormPage(strPrintName, printDatagrid) { var tableString = '<table cellspacing="0" class="pb">'; var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns对象 var columns = printDatagrid.datagrid("options").columns; // 得到columns对象 var nameList = ''; // 载入title if (typeof columns != 'undefined' && columns != '') { $(columns).each(function (index) { tableString += '\n<tr>'; if (typeof frozenColumns != 'undefined' && typeof frozenColumns[index] != 'undefined') { for (var i = 0; i < frozenColumns[index].length; ++i) { if (!frozenColumns[index][i].hidden) { tableString += '\n<th width="' + frozenColumns[index][i].width + '"'; if (typeof frozenColumns[index][i].rowspan != 'undefined' && frozenColumns[index][i].rowspan > 1) { tableString += ' rowspan="' + frozenColumns[index][i].rowspan + '"'; } if (typeof frozenColumns[index][i].colspan != 'undefined' && frozenColumns[index][i].colspan > 1) { tableString += ' colspan="' + frozenColumns[index][i].colspan + '"'; } if (typeof frozenColumns[index][i].field != 'undefined' && frozenColumns[index][i].field != '') { nameList += ',{"f":"' + frozenColumns[index][i].field + '", "a":"' + frozenColumns[index][i].align + '"}'; } tableString += '>' + frozenColumns[0][i].title + '</th>'; } } } for (var i = 0; i < columns[index].length; ++i) { if (!columns[index][i].hidden) { tableString += '\n<th width="' + columns[index][i].width + '"'; if (typeof columns[index][i].rowspan != 'undefined' && columns[index][i].rowspan > 1) { tableString += ' rowspan="' + columns[index][i].rowspan + '"'; } if (typeof columns[index][i].colspan != 'undefined' && columns[index][i].colspan > 1) { tableString += ' colspan="' + columns[index][i].colspan + '"'; } if (typeof columns[index][i].field != 'undefined' && columns[index][i].field != '') { nameList += ',{"f":"' + columns[index][i].field + '", "a":"' + columns[index][i].align + '"}'; } tableString += '>' + columns[index][i].title + '</th>'; } } tableString += '\n</tr>'; }); } // 载入内容 var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行 var nl = eval('([' + nameList.substring(1) + '])'); for (var i = 0; i < rows.length; ++i) { tableString += '\n<tr>'; $(nl).each(function (j) { var e = nl[j].f.lastIndexOf('_0'); tableString += '\n<td'; if (nl[j].a != 'undefined' && nl[j].a != '') { tableString += ' style="text-align:' + nl[j].a + ';"'; } tableString += '>'; if (e + 2 == nl[j].f.length) { tableString += rows[i][nl[j].f.substring(0, e)]; } else tableString += rows[i][nl[j].f]; tableString += '</td>'; }); tableString += '\n</tr>'; } tableString += '\n</table>'; window.showModalDialog("/print.htm", tableString, "location:No;status:No;help:No;dialogWidth:800px;dialogHeight:600px;scroll:auto;");}
print.htm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>数据打印</title> <link rel="Stylesheet" type="text/css" href="/styles/print.css" /></head><body> <script type="text/javascript"> document.write(window.dialogArguments); window.print(); </script></body></html>
print.css
body{background:white;margin:0px;padding:0px;font-size:13px;text-align:left;}.pb{font-size:13px;border-collapse:collapse;}.pb th{font-weight:bold;text-align:center;border:1px solid #333333;padding:2px;}.pb td{border:1px solid #333333;padding:2px;}
调用方式如:
{id:'print',text : '打印',iconCls : 'icon-search',handler : function() {greatMatter.prn_preview();}},'-'
/*
* 打印方法
*/
greatMatter.prn_preview = function() {
CreateFormPage("打印测试", $("").datagrid());
};
0 0
- 打印easyui的datagrid内容
- EasyUI的DataGrid 的打印导出功能
- easyui datagrid打印
- easyui实现datagrid打印
- easyui实现datagrid打印
- LODOP+easyui(datagrid)打印制单
- Easyui 中 datagrid 合并单元格的打印问题
- easyui清空datagrid内容
- 设置easyui-datagrid标题及内容的位置
- Easyui 表格datagrid 的单元格内容显示方式扩展
- 权限控制easyui datagrid filed里面的内容
- easyui,datagrid表格显示的字段内容随机
- EasyUI datagrid 实现标题居中,内容居左的方法
- 控制easyUI datagrid field里面显示的内容
- easyui datagrid 的使用
- easyui datagrid 的使用
- easyui的datagrid使用
- easyUI datagrid 行内容超过添加(...)
- cocosPods下载更新第三方时输入的代码,加上后面几句可以提高效率
- TCP数据包分片机制详解, MTU, MSS
- 第2次实验——算法基本功 与 综合思考
- eclipse 安装Aptant 插件
- JS 复选框 全选
- 打印easyui的datagrid内容
- 硬盘中删除的文件怎么修复
- block的语法学习
- 丢失所有控制文件,noresetlogs重建控制文件,alter database open
- iOS 7如何修改状态栏文本颜色?
- js 隔行变色 鼠标悬浮变色 双击变色
- 水水更健康_001数组排序
- jQuery Mobile
- 开源日志系统比较:scribe、chukwa、kafka、flume