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 相关文章推荐
Jquery中增加参数与Json转换代码
Nov 20 Javascript
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
jquery实现marquee效果(文字或者图片的水平垂直滚动)
Jan 07 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
Sep 30 Javascript
jQuery on()方法使用技巧详解
Apr 16 Javascript
原生Javascript插件开发实践
Jan 18 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
用React实现一个完整的TodoList的示例代码
Oct 30 Javascript
Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结
Feb 11 Javascript
配置eslint规范项目代码风格
Mar 11 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环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
2006/11/17 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP实现WebService的简单示例和实现步骤
2015/03/27 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
js location.replace与location.reload的区别
2010/09/08 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
JavaScript实现网页图片等比例缩放实现代码及调用方式
2013/02/25 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
解析js如何获取当前url中的参数值并复制给input
2013/06/23 Javascript
JS调用CS里的带参方法实例
2013/08/01 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
codeMirror插件使用讲解
2017/01/16 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
bootstrap table实现合并单元格效果
2018/12/24 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
javascript设计模式之迭代器模式
2020/01/30 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
python创建和删除目录的方法
2015/04/29 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
Python列表如何更新值
2020/05/27 Python
没编程基础可以学python吗
2020/06/17 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
幼师自荐信
2013/10/26 职场文书
保护环境的建议书
2014/03/12 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
大学军训通讯稿
2015/07/18 职场文书
清明扫墓感想
2015/08/11 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL