2012-01-13 9 views
4

レポートビューアを使用してRDLファイルを読み込むVisual Studio 2010(C#)で奇妙な問題が発生しました。WebForm.ReportViewer無限ループ問題

私はRDLをロードするために、次のコードを使用します。

 //get the data set and then 
     //. 
     //. 
     //pass the report to the viewer    
     using (FileStream stream = new FileStream(_AccessReportDocument.FileName, FileMode.Open)) 
     { 
      this.AccessReportViewer.LocalReport.LoadReportDefinition(stream); 
     } 
     this.AccessReportViewer.LocalReport.Refresh(); 

問題は、コードの一部は、上記の最後の行に達すると、コードはページのUnloadメソッドにジャンプしてから戻ってこれまでということです。 AccessReportViewer.LocalReport.Refresh();、すなわち無限ループ。誰もこれを経験したことがありますか?私は、2010年vsのレポートビューアには問題があるが、主にパラメータを設定することで、まだやろうとしていないことを読んだ。問題ではありません。

答えて

13

これは、データソースの設定時にポストバックをチェックしていない場合に発生します。これは、データを非同期にロードするためにレポートビューアに加えられた変更のためです。ここでの完全な説明:

Reports Never Stop Loading With VS 2010

+0

OKので、私は記事を読んでいるかどうかを確認し追加することによって、問題を解決するために管理(IsPostBackプロパティを!)。 !IsPostBack == trueの場合、データを取得してレポートにバインドします。これはうまくいきますが、なぜレポートが無限にロードされるのかわかりません。 – user559142

+1

ポストバックをチェックしておらず、ページビューでデータソースを設定していると、レポートビューアのコントロール自体が非同期になるためです自分自身をレンダリングするポストバックを設定すると、ページがロードされ、データソースが再び設定され、レポートビューアがリセットされ、すべてが再び開始されます。 –