gtag

2012年7月9日 星期一

如何讓您的ReportViewer 通吃各種瀏覽器?


使用WEB的解決方案,最需要的是各種平台、各家系統都能通用,但是各個瀏覽器對於ReportViewer 所設定寬高都不能很確切的顯示,寬度還好,尤其是使用高度是100%的設定,如下:




在FF與IE都能正常顯示,但是在CHROME就只剩下一行工具列了,除非明確的指定高度為500px,如下:




這樣才能正確顯示,或是指定 SizeToReportContent="True" ,此時報表會自動把報表的寬度與高度設定與內容相同,如下:




不過依照筆者的想法,只希望顯示垂直的捲軸,水平的捲軸不希望出現,所以高度100%是最佳的設定,所以就藉助了JAVASCRIPT,來抓取Client端瀏覽器的高度與寬度,如下:

function ResizeReport() {
   var viewer = document.getElementById("<%= ReportViewer1.ClientID %>");
   var htmlheight = document.documentElement.clientHeight;
   viewer.style.height = (htmlheight - 150) + "px";
}

透過這個函式可以抓到瀏覽器的高寬來設定ReportViewer的高寬,這樣不管在網頁載入時或是瀏覽器視窗高寬變更時,ReportViewer的尺寸也會跟著變動。如下:

window.onload = function load() { ResizeReport(); }
window.onresize = function resize() { ResizeReport(); }

沒有留言:

張貼留言