JqGrid web列印實現代碼

來源:互聯網
上載者:User

在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 用於電視機類型的裝置。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.