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 innerHTML使用分析
Dec 03 Javascript
javascript实现文字图片上下滚动的具体实例
Jun 28 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
jQuery插件ajaxfileupload.js实现上传文件
Oct 23 Javascript
微信小程序 数据绑定详解及实例
Oct 25 Javascript
Bootstrap Table从零开始
Jun 30 Javascript
React复制到剪贴板的示例代码
Aug 22 Javascript
详解vue 组件之间使用eventbus传值
Oct 25 Javascript
ES6/JavaScript使用技巧分享
Dec 14 Javascript
AngularJS实现的base64编码与解码功能示例
May 17 Javascript
Element Input输入框的使用方法
Jul 26 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实现httpclient类示例
2014/04/08 PHP
将FCKeditor导入PHP+SMARTY的实现方法
2015/01/15 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
php反射类ReflectionClass用法分析
2016/05/12 PHP
二级域名转向类
2006/11/09 Javascript
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
jQuery源码分析-02正则表达式 RegExp 常用正则表达式
2011/11/14 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JS与jQuery实现隔行变色的方法
2016/09/09 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
jquery dataTable 获取某行数据
2017/05/05 jQuery
JS数组去重常用方法实例小结【4种方法】
2018/05/28 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
js实现3D旋转相册
2020/08/02 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
[27:02]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第三场
2014/05/24 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
python开发之函数定义实例分析
2015/11/12 Python
使用Python实现在Windows下安装Django
2018/10/17 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
通过CSS3的object-fit来调整图片适配尺寸的技巧简介
2016/02/27 HTML / CSS
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
法国在线药房:1001Pharmacies
2021/03/07 全球购物
服务员岗位职责
2014/01/29 职场文书
文明生主要事迹
2014/05/25 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
费城故事观后感
2015/06/10 职场文书
python绘制云雨图raincloud plot
2022/08/05 Python