easyui 打印功能怎么实现

html-css020

easyui 打印功能怎么实现,第1张

参考代码如下:

<%@ page language="java"pageEncoding="UTF-8"%>

<object id="WebBrowser"classid="ClSID:8856F961-340A-11D0-A96B-00C04Fd705A2"width="0" height="0">

</object>

<script language="javascript"type="text/javascript">

var tableString = "<linkrel='stylesheet' type='text/css' href='Lodop/print.css' /><tablecellspacing='0' id='PrintBody'>"

function doPrint()

{

tableString += "<scriptlanguage='javascript'>window.print()</s"+"cript>"

// tableString.insertAdjacentHTML("beforeBegin","<scriptlanguage='javascript'>window.print()</s"+"cript>")

document.open('','','height=500,width=611,scrollbars=yes,status =yes')

document.write(tableString)

document.close()

}

// strPrintName 打印任务名

// printDatagrid 要打印的datagrid

function CreateFormPage(strPrintName, printDatagrid) {

var frozenColumns = printDatagrid.datagrid("options").frozenColumns // 得到frozenColumns对象

var columns = printDatagrid.datagrid("options").columns // 得到columns对象

// 载入title

tableString = tableString + "\n<tr>"

if(frozenColumns != undefined &&frozenColumns != '') {

for(var i = 0i<frozenColumns[0].lengthi++) {

if(frozenColumns[0][i].hidden != true) {

tableString = tableString + "\n<th width= '" +frozenColumns[0][i].width +"'>" + frozenColumns[0][i].title + "</th>"

}

}

}

if(columns != undefined &&columns != '') {

for(var i = 0i<columns[0].lengthi++) {

if(columns[0][i].hidden != true) {

tableString = tableString + "\n<th width= '" +columns[0][i].width +"'>" + columns[0][i].title + "</th>"

}

}

}

tableString = tableString + "\n</tr>"

// 载入内容

var rows = printDatagrid.datagrid("getRows")// 这段代码是获取当前页的所有行。

for(var j = 0j <rows.lengthj++) {

tableString = tableString + "\n<tr>"

if(frozenColumns != undefined &&frozenColumns != '') {

for(var i = 0i<frozenColumns[0].lengthi++) {

if(frozenColumns[0][i].hidden != true) {

tableString = tableString + "\n<td >" + rows[j][frozenColumns[0][i].field] + "</td>"

}

}

}

if(columns != undefined &&columns != '') {

for(var i = 0i<columns[0].lengthi++) {

if(columns[0][i].hidden != true) {

tableString = tableString + "\n<td >" + rows[j][columns[0][i].field] + "</td>"

}

}

}

tableString = tableString + "\n</tr>"

}

tableString = tableString + "\n</table>"

doPrint()

}

</script>

使用方法: jsp页面中

<jsp:include page="../../../Lodop/print2.jsp"></jsp:include>

Js页面中

function prn_preview() {

CreateFormPage("核销账款明细", stockDocumentDatagrid)

}

第一个参数是单据名称第二个是要打印的datagrid对象

应该有的http://zhidao.baidu.com/link?url=7ggWCe8lc3lmtJJ6o-c4L5TP5ovrP0Gjbxal0qPCa4H022OWCamyjamYucVE8S2q5cHF-XnanlWE2CJEidSbAq

easyui不是100%能满足所有你手工开发html的功能,你只能按照他文档,按照他的方式来使用,因为easyui本身用了好多js来包装的你html源,导致最后的文档跟你当初的原始文档差了不少

既然使用了easyui建议你就不要再使用,最起码不要过多的使用自定义的样式,初学者很容易被搞晕。外部或者内部css没有被引入进来的问题可能是你引入的点没有放在easyui的css文件后面,css跟加载顺序是相关的,因为css本身叫层叠样式,还有一种可能是你用id或者class来定义样式的时候,你是按照原始html文档来定义的,但是被easyui的js处理完后,你文档结构有可能被修改,导致样式失效。

建议你初期直接使用easyui提供的样式,不要自己定义了

你左侧鼠标移动上去看不到字的问题,我给你2个建议:

第一,使用类似firefox浏览器firebug来调试一下,看下鼠标移动上去蓝色的条是哪个css或者js文件定义的,光看谁也不知道是怎么回事,一定要借助工具来帮助你开发。

第二,放弃你现在的结构,我觉得,既然你左侧是菜单,为何不在accordion内嵌入tree呢?美观还好用。

学easyui不难,但是你要想用了easyui再自己定义一堆堆的样式,很难,很多用了一段时间的也会被搞晕,比如我,呵呵