打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
EasyUI的DataGrid 打印导出

一直在Winform和WPF的项目,偶尔接触Web都是网上下个模板修修改改就成了,学习的不太深入。

今日遇到一个打印导出datagrid的问题,做桌面项目的打印导出通常我都是直接将数据源拿过来放到我的打印导出模块直接就出来了,但是在web上没有积累,特别是用了EasyUI的DataGrid,一时不知道如何是好。

遂度娘一翻找到如下解决方案:

1.打印部分

  新增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

View Code

  页面引用print.js并调用

CreateFormPage("datagrid",$("#dg"));

2.导出部分

  新增export.js

View Code

  新增export.aspx后台

View Code

  export.aspx前台仅保留

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="export.aspx.cs" Inherits="export" %>

  页面引用export.js并调用

Export('outputexcel', $('#dg'));

到此我的打印导出功能已经完成,但是有个问题EasyUI1.3.4不支持IE8,这肿么行!果断换到1.3.2版本测试没有问题。做web没多久深感IE浏览器兼容性问题太烦,真是各家做各家的产品!让人不敢踏入Web界啊。

第一次自己写博客,感谢大家来捧场,谢谢

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JQuery EasyUI datagrid 复杂表头处理
Merge and split table cells with JavaScript
html表单元素的colspan和rowspan
rowspan colspan
Html表格制作及实例
js判断undefined类型
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服