ReportViewer的跨瀏覽器問題
測試了一下,ReportViewer 2008在跨瀏覽器方面問題挺多。
例如報表工具列,只有在IE下可以完整顯示,線上列印功能要動用ActiveX Control,所以IE以外的瀏覽器無法使用天經地義。但測試下來,在IE以外的瀏覽器上仍然有些其他問題要克服...
在非IE瀏覽器裡,即使ReportViewer Width、Height指定100%,也只能顯示一小塊。
我發現是<table id="ctl00_ContentPlaceHolder1_ReportViewer1" cellspacing="0" cellpadding="0" style="display: inline-block; height: 100%; width: 100%;">裡inline-block搞的鬼,由於它不是標準CSS,在非IE瀏覽器上就爆炸了。我想到一個解決方法是在ReportViewer外包一個<div id="dvWrapper">,再用jQuery("#dvWrapper table:first").css("display", "")可以解決這個問題。但好戲在後頭...
在Firefox裡還OK的報表工具列,到了Chrome、Safari裡就爛掉了,在Opera裡工具列是好的,但報表的標題列是壞的。
過關的有: IE, Firefox, Opera
壞掉的有Chrome, Safari,原本應該一列的工具列硬生生被拆成三列...

追了一下,問題出在這段CSS的詮釋:
<div style="display:inline;">DIV1</div> <table style="display:inline;"> <tr><td>Table1</td></tr> </table> <div style="display:inline;">DIV2</div>
關鍵在於,當<div>、<table>宣告display:inline時,是否還該維持強制換行? 我不是CSS專家,不知誰對誰錯,但至少在這個案例中,不再是IE一國,其他瀏覽器一國,IE所在的一方,票數還略勝一籌哩!!
【結論】採用ReportViewer時,還是乖乖用IE就好,不要想太多~~