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 相关文章推荐
6款新颖的jQuery和CSS3进度条插件推荐
Mar 05 Javascript
在Javascript中处理数组之toSource()方法的使用
Jun 09 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
js实现超酷的照片墙展示效果图附源码下载
Oct 08 Javascript
Js获取图片原始宽高的实现代码
May 17 Javascript
第十篇BootStrap轮播插件使用详解
Jun 21 Javascript
vue的diff算法知识点总结
Mar 29 Javascript
Koa2微信公众号开发之消息管理
May 16 Javascript
Nuxt.js开启SSR渲染的教程详解
Nov 30 Javascript
js实现蒙版效果
Jan 11 Javascript
Vue中 axios delete请求参数操作
Aug 25 Javascript
微信小程序实现购物车功能
Nov 18 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
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
利用php来自动调用不同服务器上的flash
2006/10/09 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
PHP实现合并两个排序链表的方法
2018/01/19 PHP
Js 获取当前日期时间及其它操作实现代码
2021/03/04 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
jquery中dom操作和事件的实例学习-表单验证
2011/11/30 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
js实现分享到随页面滚动而滑动效果的方法
2015/04/10 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
JS数组及对象遍历方法代码汇总
2020/06/16 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
在Python中操作字典之update()方法的使用
2015/05/22 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
python主要用于哪些方向
2020/07/05 Python
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
MADE法国:提供原创设计师家具
2018/09/18 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
中年人生感言
2014/02/04 职场文书
社区消防工作实施方案
2014/03/21 职场文书
市级绿色学校申报材料
2014/08/25 职场文书
上党课的心得体会
2014/09/02 职场文书
2015年机械设备管理工作总结
2015/05/04 职场文书
车位出租协议书范本
2016/03/19 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android