2

MVC シングル ページ アプリの iframe に読み込まれる Web フォームで ReportViewer (2012、バージョン 11) ユーザー コントロールを使用しています。あるレポートを実行すると正常に動作することがわかりましたが、別のレポートに移動すると、更新するまで実行されません。

iframe を含む前のコンテンツ セクションは dom から削除されているため、次のレポートにどのように干渉するかはわかりません。私の推測では、レポート ビューアーがグローバル名前空間を完全に汚染していると思います。

いずれにしてもエラーは

TypeError: cs is null
return cs.getPropertyValue('direction');

誰かがこれについて知っていますか、またはレポートビューアーの後にクリーンアップする方法があるかどうか、またはより良いレポートビューアーコントロールがあるかどうかを知っていますか?

4

1 に答える 1

0

私のアプリケーションはあなたのアプリケーションに似ています。jQuery を使用して ReportViewer を DOM 要素 (iframe に埋め込まれている) にロードしています。

これに似たもの:

var formargs = $("#reportArgsForm").serialize();
var windowheight = $("#content").height() - 8;
var link = '<iframe id="report_iframe" style="height:' + windowheight + 'px;width:99%;overflow: visible;" src="Reports/SimpleReportViewer.aspx?' + formargs + '"></iframe>';

$("#tabs").tabs("option", "active", 1);
$("#tabs-display").html(link);

お気付きのように、レポートは実際には独自の jQuery-UI タブ内に表示されます。jQuery-UI 1.10.1 にアップグレードしたため、同じエラーが発生し、タブの「選択」メソッドが機能しなくなりました。

私の場合、エラーは Microsoft.Reporting.WebFormsClient._InternalReportViewer.GetRTLDirection の奥深くに埋もれていました。レポート ビューアーのコードが、一部の要素で window.getComputedStyle を呼び出そうとしましたが、null が返されていました。渡された要素が表示されなかったため、null でした。

jQuery-UI のタブ切り替えの問題を修正したら、ReportViewer のエラー ("cs is null") はなくなりました。

于 2013-05-22T01:54:34.380 に答える