2010-10-28 46 views
0

使用Microsoft.Samples.ReportingServices.ReportViewer,我在同一個aspx頁面上使用IFrame顯示了同一個SRS報告的多個實例(這是ReportViewer呈現的是什麼)。每個實例都有不同的參數傳遞給它,所以輸出在每個報告實例上看起來都不相同。在IE的單個頁面上多次重複下載(無緩存)相同的報告圖像

我的問題是,在Internet Explorer中,每個報告都顯示相同的圖形,因爲IE正在緩存圖像;該報告的每個圖像表示的URL都是相同的URL,因此IE假定它應該一遍又一遍地顯示相同的圖像,因爲它全部位於同一頁面上(儘管由IFrame分隔)。

Firefox的行爲正確。有沒有辦法阻止IE緩存圖像?以下是我無法使用的解決方案(無權使用):

  • 設置圖像的HTTP標頭,因爲它位於遠程SRS服務器上。
  • 將查詢字符串中的GUID附加到圖像的末尾,以便IE認爲它們都是不同的URL。

,因爲我指定格式的報告(每個IFrame中顯示)的URL我不能做第二:

http://SERVER_NAME/ReportServer?/path/ReportName&date=01-01-2000&rs:Command=Render&rc:toolbar=false

該頁面總是呈現相同的標記,但重寫每個請求的引用圖像。

爲了澄清,我的問題不是我顯示圖像太快,或者服務器被同一會話弄糊塗了。它完全是Internet Explorer假設,即「google.com/filename.jpg」在單個頁面上多次顯示時總是相同的圖像。

任何建議將有所幫助。 (請爲愛神聖的一切,不建議水晶報告或第三方控制。)(...除非沒有其他選擇。)

回答

1

我假設您正試圖在同一個SRS報表上動態顯示圖形的多個實例(用不同的數據重複該圖形)。

  1. 相反渲染圖形多次使用不同的參數,你可以把一個列表控件內部的圖形。
  2. 然後返回每個圖的所有數據,包括數據將被分組的列。
  3. 將List控件的數據集設置爲圖的數據集。
  4. 轉到列表控件上的屬性,然後單擊編輯詳細信息組...
  5. 然後在常規選項卡上>組合:您可以將數據組添加到數據集中。

該圖現在將重複步驟5中選擇的列。

0

如果您有權將HTTP標頭添加到服務器的回覆中,則添加「Expires:-1」和/或「Pragma:no-cache」標題。

相關問題