国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

解決ASP.NET中ReportView與IE11的兼容性問題

2019-11-17 01:27:56
字體:
來源:轉載
供稿:網友
解決asp.net中ReportView與IE11的兼容性問題

  前久發現以前用ReportView開發的一個軟件的報表,在IE11上運行時出錯,陸續查了好幾天才解決了問題。

  開發環境:

  VS2010,ReportView 10.0.402,RDLC報表模板

  問題:

  1.查詢時報表出錯。

  2.報表控件上不顯示打印按鈕。

  3.打印按鈕顯示出來后,打印不了。

  原因解決:

  1.查詢時報表出錯:

   在報表模板中加入了“橫線”控件所致,刪除即正常了。

  2.報表控件上不顯示打印按鈕:

  原因:

  由于ReportView的打印功能是依賴于一個RSClientPRint的ActiveX控件的,而ActiveX只能運行在IE瀏覽器上。

  微軟改變了IE11的User-Agent

  IE11:User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

    IE10:User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

  致使ReportView控件服務器端判斷當前的IE11瀏覽器為非IE瀏覽器,沒有發送創建“打印”按鈕的相關js代碼,所以沒有顯示打印按鈕。

  解決:

  在網站根目錄下創建App_Browsers目錄加入browser文件。

<browsers>    <browser id="IE11" parentID="Mozilla">        <identification>            <userAgent match="Trident//7.0; rv:(?'version'(?'major'/d+)(/.(?'minor'/d+)?)(?'letters'/w*))(?'extra'[^)]*)" />            <userAgent nonMatch="IEMobile" />        </identification>        <capture>            <userAgent match="Trident/(?'layoutVersion'/d+)" />        </capture>        <capabilities>            <capability name="browser"              value="IE" />            <capability name="layoutEngine"         value="Trident" />            <capability name="layoutEngineVersion"  value="${layoutVersion}" />            <capability name="extra"                value="${extra}" />            <capability name="isColor"              value="true" />            <capability name="letters"              value="${letters}" />            <capability name="majorversion"         value="${major}" />            <capability name="minorversion"         value="${minor}" />            <capability name="screenBitDepth"       value="8" />            <capability name="type"                 value="IE${major}" />            <capability name="version"              value="${version}" />        </capabilities>    </browser>    <!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko -->    <browser id="IE110" parentID="IE11">        <identification>            <capability name="majorversion" match="11" />        </identification>        <capabilities>            <capability name="ecmascrjavascript"           value="true" />            <capability name="Javascriptversion"    value="1.5" />            <capability name="msdomversion"         value="${majorversion}.${minorversion}" />            <capability name="w3cdomversion"        value="1.0" />            <capability name="ExchangeOmaSupported" value="true" />            <capability name="activexcontrols"      value="true" />            <capability name="backgroundsounds"     value="true" />            <capability name="cookies"              value="true" />            <capability name="frames"               value="true" />            <capability name="javaapplets"          value="true" />            <capability name="supportsCallback"     value="true" />            <capability name="supportsFileUpload"   value="true" />            <capability name="supportsMultilineTextBoxDisplay" value="true" />            <capability name="supportsMaintainScrollPositionOnPostback" value="true" />            <capability name="supportsVCard"        value="true" />            <capability name="supportsxmlHttp"      value="true" />            <capability name="tables"               value="true" />            <capability name="supportsaccessKeyAttribute"    value="true" />            <capability name="tagwriter"            value="System.Web.UI.HtmlTextWriter" />            <capability name="vbscript"             value="true" />        </capabilities>    </browser></browsers>
View Code

  3.打印按鈕顯示出來后,打印不了:

  原因:

  由于ReportView在頁面生成時并不直接加載RSClientPrint控件,而是在點擊打印按鈕時由JS動態添加OBJECT元素來加載RSClientPrint控件,問題就在這里。

原來IE11在添加OBJECT元素后并沒有從服務器端加載RSClientPrint控件,所以打印無效。

  解決:

  在aspx頁面中直接加入OBJECT元素。

<%if(Request.Browser.Type.IndexOf("IE11")>-1){%>    <object id="ReportViewer1_PrintObj" classid="CLSID:5554DCB0-700B-498D-9B58-4E40E5814405" codebase="/Reserved.ReportViewerWebControl.axd?Culture=2052&amp;CultureOverrides=True&amp;UICulture=2052&amp;UICultureOverrides=True&amp;ReportStack=1&amp;ControlID=57e8d903ef7748f7a0c02a1c6bdb851d&amp;Mode=true&amp;OpType=PrintCab&amp;Arch=X86#Version=2009,100,1750,0" style="display: none;" VIEWASTEXT=""></object><%} %>

注意:object 的id="ReportViewerID"_PrintObj,codebase=路徑,可能由于控件版本的不同而和本例不同。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云安县| 浮山县| 锡林浩特市| 六枝特区| 武陟县| 论坛| 泰顺县| 郧西县| 威海市| 隆化县| 南川市| 定兴县| 邹平县| 德州市| 中阳县| 江城| 石渠县| 鄂温| 郎溪县| 石城县| 景东| 大洼县| 鸡泽县| 五华县| 安新县| 石景山区| 甘孜县| 清水县| 山东| 崇左市| 兴安县| 衡南县| 济南市| 淄博市| 高碑店市| 万安县| 长寿区| 工布江达县| 永福县| 东海县| 阳原县|