前段时间写了几个Ext通用工具,记录一下。
打印grid数据:
主要思路:将grid数据拼装到一个HTML的table里去,然后再打印这个table。。。
打印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。。。