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 相关文章推荐
JS 对象介绍
Jan 20 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
jQuery 取值、赋值的基本方法整理
Mar 31 Javascript
JavaScript代码复用模式详解
Nov 07 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 Javascript
JS监控关闭浏览器操作的实例详解
Sep 12 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
Jul 17 Javascript
Vue的属性、方法、生命周期实例代码详解
Sep 17 Javascript
vue中根据时间戳判断对应的时间(今天 昨天 前天)
Dec 20 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
php access 数据连接与读取保存编辑数据的实现代码
2010/05/12 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
CI框架常用经典操作类总结(路由,伪静态,分页,session,验证码等)
2016/11/21 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jquery里的each使用方法详解
2010/12/22 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
JS对象与JSON格式数据相互转换
2012/02/20 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
jQuery实现移动端手机商城购物车功能
2016/09/24 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
Python打造出适合自己的定制化Eclipse IDE
2016/03/02 Python
python 简单的多线程链接实现代码
2016/08/28 Python
wxPython多个窗口的基本结构
2019/11/19 Python
捷克电器和DJ设备网上商店:Electronic-star
2017/07/18 全球购物
经典c++面试题四
2015/05/14 面试题
商得四方公司面试题(gid+)
2014/04/30 面试题
创业计划书六个要素
2013/12/26 职场文书
伊琍体标语
2014/06/25 职场文书
个人承诺书格式范文
2015/04/29 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书