EXT grid 인쇄

2103 단어 htmljspextJ#
얼마 전에 몇 개의 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의 테이블에 조립한 다음 이 테이블을 인쇄합니다.

좋은 웹페이지 즐겨찾기