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表单提交的代码
Sep 13 Javascript
javascript 函数使用说明
Apr 07 Javascript
javascript语言结构小记(一)
Sep 10 Javascript
JavaScript设计模式之外观模式实例
Oct 10 Javascript
JavaScript截断字符串的方法
Jul 15 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
图片懒加载插件实例分享(含解析)
Jan 09 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
jquery实现上传图片功能
Jun 29 jQuery
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 Javascript
javascript中正则表达式语法详解
Aug 07 Javascript
JavaScript大数相加相乘的实现方法实例
Oct 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操作MongoDB类实例
2015/06/17 PHP
win10 apache配置虚拟主机后localhost无法使用的解决方法
2018/01/27 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
Div Select挡住的解决办法
2008/08/07 Javascript
javascript call方法使用说明
2010/01/11 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
2013/05/08 Javascript
JS将表单导出成EXCEL的实例代码
2013/11/11 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
Vue入门之animate过渡动画效果
2018/04/08 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
vue中移动端调取本地的复制的文本方式
2020/07/18 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
python简单猜数游戏实例
2015/07/09 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python 画三维图像 曲面图和散点图的示例
2018/12/29 Python
Python split() 函数拆分字符串将字符串转化为列的方法
2019/07/16 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
python 实现return返回多个值
2019/11/19 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
英国领先的在线高尔夫商店:Scottsdale Golf
2019/08/26 全球购物
财务审计整改报告
2014/11/06 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
档案工作个人总结
2015/03/03 职场文书
2015年个人工作总结报告
2015/04/25 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js