EasyUI的DataGrid 的打印导出功能

来源:互联网 发布:泸州市网络问政平台 编辑:程序博客网 时间:2024/05/18 14:44

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.aspx

<!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>        <style type="text/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;}</style></head><body>    <script type="text/javascript">        document.write(window.dialogArguments);        window.print();    </script></body></html>

 页面引用print.js并调用

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

2.导出部分

  新增export.js


function ChangeToTable(printDatagrid) {    var tableString = '<table cellspacing="0" class="pb">';    var frozenColumns = printDatagrid.datagrid("options").frozenColumns;  // 得到frozenColumns对象    var columns = printDatagrid.datagrid("options").columns;    // 得到columns对象    var nameList = new Array();    // 载入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.push(frozenColumns[index][i]);                        }                        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.push(columns[index][i]);                    }                    tableString += '>' + columns[index][i].title + '</th>';                }            }            tableString += '\n</tr>';        });    }    // 载入内容    var rows = printDatagrid.datagrid("getRows"); // 这段代码是获取当前页的所有行    for (var i = 0; i < rows.length; ++i) {        tableString += '\n<tr>';        for (var j = 0; j < nameList.length; ++j) {            var e = nameList[j].field.lastIndexOf('_0');            tableString += '\n<td';            if (nameList[j].align != 'undefined' && nameList[j].align != '') {                tableString += ' style="text-align:' + nameList[j].align + ';"';            }            tableString += '>';            if (e + 2 == nameList[j].field.length) {                tableString += rows[i][nameList[j].field.substring(0, e)];            }            else                tableString += rows[i][nameList[j].field];            tableString += '</td>';        }        tableString += '\n</tr>';    }    tableString += '\n</table>';    return tableString;}function Export(strXlsName, exportGrid) {    var f = $('<form action="export.aspx" method="post" id="fm1"></form>');    var i = $('<input type="hidden" id="txtContent" name="txtContent" />');    var l = $('<input type="hidden" id="txtName" name="txtName" />');    i.val(ChangeToTable(exportGrid));    i.appendTo(f);    l.val(strXlsName);    l.appendTo(f);    f.appendTo(document.body).submit();   try{    document.body.removeChild(f);}catch(e){}}

 新增export.aspx后台

protected void Page_Load(object sender, EventArgs e)    {        Response.Clear();        Response.Buffer = true;        Response.Charset = "utf-8";        Response.ContentEncoding = System.Text.Encoding.UTF8;        Response.AppendHeader("content-disposition", "attachment;filename=\"" + HttpUtility.HtmlEncode(Request["txtName"] ?? DateTime.Now.ToString("yyyyMMdd")) + ".xls\"");        Response.ContentType = "Application/ms-excel";        Response.Write("<html>\n<head>\n");        Response.Write("<style type=\"text/css\">\n.pb{font-size:13px;border-collapse:collapse;} " +                       "\n.pb th{font-weight:bold;text-align:center;border:0.5pt solid windowtext;padding:2px;} " +                       "\n.pb td{border:0.5pt solid windowtext;padding:2px;}\n</style>\n</head>\n");        Response.Write("<body>\n" + Request["txtContent"] + "\n</body>\n</html>");        Response.Flush();        Response.End();    }

 export.aspx前台仅保留

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

页面引用export.js并调用

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



0 0
原创粉丝点击