|
一直在Winform和WPF的項(xiàng)目,偶爾接觸Web都是網(wǎng)上下個(gè)模板修修改改就成了,學(xué)習(xí)的不太深入。 今日遇到一個(gè)打印導(dǎo)出datagrid的問(wèn)題,做桌面項(xiàng)目的打印導(dǎo)出通常我都是直接將數(shù)據(jù)源拿過(guò)來(lái)放到我的打印導(dǎo)出模塊直接就出來(lái)了,但是在web上沒(méi)有積累,特別是用了EasyUI的DataGrid,一時(shí)不知道如何是好。 遂度娘一翻找到如下解決方案: 1.打印部分 新增print.js
// strPrintName 打印任務(wù)名 // printDatagrid 要打印的datagrid function CreateFormPage(strPrintName, printDatagrid) { var tableString = '<table cellspacing="0" class="pb">'; var frozenColumns = printDatagrid.datagrid("options").frozenColumns; // 得到frozenColumns對(duì)象 var columns = printDatagrid.datagrid("options").columns; // 得到columns對(duì)象 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>'; }); } // 載入內(nèi)容 var rows = printDatagrid.datagrid("getRows"); // 這段代碼是獲取當(dāng)前頁(yè)的所有行 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 頁(yè)面引用print.js并調(diào)用 CreateFormPage("datagrid",$("#dg"));
2.導(dǎo)出部分 新增export.js
View Code 新增export.aspx后臺(tái)
View Code export.aspx前臺(tái)僅保留 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="export.aspx.cs" Inherits="export" %>
頁(yè)面引用export.js并調(diào)用 Export('outputexcel', $('#dg'));
到此我的打印導(dǎo)出功能已經(jīng)完成,但是有個(gè)問(wèn)題EasyUI1.3.4不支持IE8,這腫么行!果斷換到1.3.2版本測(cè)試沒(méi)有問(wèn)題。做web沒(méi)多久深感IE瀏覽器兼容性問(wèn)題太煩,真是各家做各家的產(chǎn)品!讓人不敢踏入Web界啊。 第一次自己寫博客,感謝大家來(lái)捧場(chǎng),謝謝 |
|
|
來(lái)自: 小丑g22xft6chp > 《待分類》