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日期对象格式化为字符串的实现方法
Jan 14 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
jquery 扑捉回车键事件代码
Apr 24 Javascript
JS中使用sort结合localeCompare实现中文排序实例
Jul 23 Javascript
js实现可得到不同颜色值的颜色选择器实例
Feb 28 Javascript
jQuery切换所有复选框选中状态的方法
Jul 02 Javascript
JQuery插件Marquee.js实现无缝滚动效果
Apr 26 Javascript
js与applet相互调用的方法
Jun 22 Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
js合并两个数组生成合并后的key:value数组
May 09 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
Terran热键控制
2020/03/14 星际争霸
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
jquery post方式传递多个参数值后台以数组的方式进行接收
2013/01/11 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
JavaScript数据推送Comet技术详解
2016/04/07 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
js+css实现扇形导航效果
2020/08/18 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
Python 执行字符串表达式函数(eval exec execfile)
2014/08/11 Python
python使用chardet判断字符串编码的方法
2015/03/13 Python
深入理解python函数递归和生成器
2016/06/06 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
python dlib人脸识别代码实例
2019/04/04 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
python支持多继承吗
2020/06/19 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
2014年除四害工作总结
2014/12/06 职场文书
小学优秀班主任材料
2014/12/17 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书