JqGrid web打印实现代码


Posted in Javascript onMay 31, 2011

在IE9中打印没有问题,但IE6、7、8都会出现前几页空白的情况(只显示列头信息),找了很久,才发现是ui-jqgrid-bdiv样式类(在ui.jqgrid.css内)中的overflow引起的,在打印之前将其删除,打印之后将其恢复即可。
打印时的CSS样式如下:

<style type="text/css" media="print"> 
#accordion h3, #vcol, div.loading, div.ui-tabs-hide,ul.ui-tabs-nav li, td.HeaderRight { display:none } 
.ui-jqgrid-titlebar, .ui-jqgrid-title{ display:none } 
.ui-jqgrid-bdiv_self{position: relative; margin: 0em; padding:0; text-align:left;} 
#pager{display:none; z-index:-1;} 
</style>

打印代码:
$("#btnPrint").live("click", function () { 
window.focus(); 
window.print(); 
return false; 
}); 
var GridHeight; 
function window.onbeforeprint() { 
//打印前事件 var jqgridObj=jQuery("#jqgridlist"); 
GridHeight = jqgridObj.jqGrid('getGridParam', 'height');//获取高度 jqgridObj.jqGrid('setGridHeight', '100%');//将其高度设置成100%,主要是为了jqgrid 中有Scroll条时 能把该scroll条内内容都打印出来 $("#gview_jqgridlist .ui-jqgrid-bdiv").removeClass().addClass("ui-jqgrid-bdiv_self");//去除掉overflow属性} 
function window.onafterprint() {//打印后事件 //放开隐藏的元素 
$("#gview_jqgridlist .ui-jqgrid-bdiv_self").removeClass().addClass("ui-jqgrid-bdiv");//恢复overflow属性,否则会导致jqgrid中scroll条消失 jQuery("#jqgridlist").jqGrid('setGridHeight', GridHeight);//设置成打印前的高度}

CSS 媒体属性介绍:
媒介类型(Media Types)允许你定义以何种媒介来提交文档。文档可以被显示在显示器、纸媒介或者听觉浏览器等等。
媒介类型
某些 CSS 属性仅仅被设计为针对某些媒介。比方说 "voice-family" 属性被设计为针对听觉用户终端。其他的属性可被用于不同的媒介。例如,"font-size" 属性可被用于显示器以及印刷媒介,但是也许会带有不同的值。显示器上面的显示的文档通常会需要比纸媒介文档更大的字号,同时,在显示器上,sans-serif 字体更易阅读,而在纸媒介上,serif 字体更易阅读。
@media规则
@media 规则使你有能力在相同的样式表中,使用不同的样式规则来针对不同的媒介。
下面这个例子中的样式告知浏览器在显示器上显示 14 像素的 Verdana 字体。但是假如页面需要被打印,将使用 10 个像素的 Times 字体。注意:font-weight 被设置为粗体,不论显示器还是纸媒介:
<html> 
<head> 
<style> 
@media screen 
{ 
p.test {font-family:verdana,sans-serif; font-size:14px} 
} 
@media print 
{ 
p.test {font-family:times,serif; font-size:10px} 
} 
@media screen,print 
{ 
p.test {font-weight:bold} 
} 
</style> 
</head> 
<body>....</body> 
</html>

不同的媒介类型
注释:媒介类型名称对大小写不敏感。
媒介类型 描述
all 用于所有的媒介设备。
aural 用于语音和音频合成器。
braille 用于盲人用点字法触觉回馈设备。
embossed 用于分页的盲人用点字法打印机。
handheld 用于小的手持的设备。
print 用于打印机。
projection 用于方案展示,比如幻灯片。
screen 用于电脑显示器。
tty 用于使用固定密度字母栅格的媒介,比如电传打字机和终端。
tv 用于电视机类型的设备。
Javascript 相关文章推荐
JavaScript 事件参考手册
Dec 24 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
jQuery参数列表集合
Apr 06 Javascript
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 Javascript
PHP中使用微秒计算脚本执行时间例子
Nov 19 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
跟我学习javascript的prototype,getPrototypeOf和__proto__
Nov 17 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
微信小程序 自定义对话框实例详解
Jan 20 Javascript
关于jQuery库冲突的完美解决办法
May 20 jQuery
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
Mar 19 Javascript
微信小程序中target和currentTarget的区别小结
Nov 06 Javascript
16个最流行的JavaScript框架[推荐]
May 29 #Javascript
js 静态动态成员 and 信息的封装和隐藏
May 29 #Javascript
在JavaScript中监听IME键盘输入事件
May 29 #Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
May 28 #Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 #Javascript
最新28个很棒的jQuery 教程
May 28 #Javascript
JavaScript使用IEEE 标准进行二进制浮点运算产生莫名错误的解决方法
May 28 #Javascript
You might like
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
JavaScript 事件属性绑定带参数的函数
2009/03/13 Javascript
Jquery 弹出层插件实现代码
2009/10/24 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
js操作时间(年-月-日 时-分-秒 星期几)
2010/06/20 Javascript
jquery 实现上下滚动效果示例代码
2013/08/09 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
详解jQuery中的事件
2016/12/14 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
如何解决React官方脚手架不支持Less的问题(小结)
2018/09/12 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
利用python爬取软考试题之ip自动代理
2017/03/28 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
Python实现爬取网页中动态加载的数据
2020/08/17 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
银行存款证明样本
2014/01/17 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
迎新年主持词
2015/07/06 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS
Python利用机器学习算法实现垃圾邮件的识别
2021/06/28 Python
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android