EXT grid 打印

前段时间写了几个Ext通用工具,记录一下。
打印grid数据:

function printPage(grid) {
var tableStr = '<table width="100%" border=1>';
var cm = grid.getColumnModel();
var colCount = cm.getColumnCount();
var temp_obj = new Array();
// 只下载没有隐藏的列(isHidden()为true表示隐藏,其他都为显示)
// 临时数组,存放所有当前显示列的下标
for (var i = 2; i < colCount; i++) {//从第三列开始,因为我的第1、2列是分别是rownumber和selectmodel。
if (cm.isHidden(i) == true) {
} else {
temp_obj.push(i);
}
}
tableStr = tableStr + '<tr><td>序号</td>';
for (var i = 0; i < temp_obj.length; i++) {
// 显示列的列标题
tableStr = tableStr + '<td>' + cm.getColumnHeader(temp_obj[i])
+ '</td>';
}
tableStr = tableStr + '</tr>';
var store = grid.getStore();
var recordCount = store.getCount();
for (var i = 0; i < recordCount; i++) {
var r = store.getAt(i);
tableStr = tableStr + '<tr><td>' + (i + 1) + '</td>';
for (var j = 0; j < temp_obj.length; j++) {
var dataIndex = cm.getDataIndex(temp_obj[j]);
var tdValue = r.get(dataIndex);
var rendererFunc = cm.getRenderer(temp_obj[j]);
if (rendererFunc != null) {
tdValue = rendererFunc(tdValue);
}
if (tdValue == null) {
tdValue = '';
}
tableStr = tableStr + '<td>' + tdValue + '</td>';
}
tableStr = tableStr + '</tr>';
}
tableStr = tableStr + '</table>';
var titleHTML = tableStr;// document.getElementById("printGridfff").innerHTML;
var newwin = window.open('printer.jsp', '', '');

newwin.document.write(titleHTML);
newwin.document.location.reload();
newwin.print();
newwin.close();
}

主要思路:将grid数据拼装到一个HTML的table里去,然后再打印这个table。。。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值