2010-05-04 74 views
1

這是我的全部問題,所以如果任何人有任何想法或可以提供一些幫助,請讓我知道。我有一個網站會生成一份報告,本報告需要一些時間來創建。有一個MyReport.ASPX文件,它具有form1,Image1和ReportViewer控件。還有一個MyReport.cs文件,它具有用於生成ReportViewer控件將顯示的HTMLText字符串的C#代碼。當我在瀏覽器中向上拉網站時,MyReport.cs文件會在調用MyReport.ASPX之前創建報告,因此我的Image1(在報表創建時需要顯示)永遠不會顯示,直到報表創建後並顯示。顯示我的圖像的問題

你建議我在這裏做什麼?如果我沒有提供足夠的信息,請告訴我你還需要知道什麼,我很樂意發佈。

謝謝,

下面是迴應德里克。

<script src="http://code.jquery.com/jquery-latest.js"></script> 
<script> 
$(document).ready(function(){ 
$(".loading").load("http://servername/Geocortex/Essentials/Web/SelectionReport1.aspx"); 
}); 
</script> 

<%@ Page Language="C#" AutoEventWireup="true" Codebehind="App_Code/MyReport.cs" Inherhits="Geocortex.Essentials.WebFramework.SelectionReportPage" Culture="auto" UICulture="auto" %> 

回答

1

一種方法是將報告生成代碼移至網頁服務或頁面內的PageMethod。讓你的aspx頁面顯示一個圖像,然後一旦加載頁面,使用js或jquery對web服務(或頁面方法)進行ajax調用,並更新頁面(刪除圖像並顯示從web服務返回的報告) 。

<div id="loading"> 
<img src="..."/> 
</div> 

然後使用jQuery的的document.ready事件:

$(document).ready(function(){ 
$(".loading").load(url of page with reportviewer control); 
}); 
+0

喜Derek-裸陪我,因爲我可能無法正確理解你。我可以從MyReport.ASPX中刪除ReportViewer並保留Image1。如果我創建了一個新的ASPX頁面並且只有ReportViewer控件,那麼我需要從那裏做些什麼?如何知道報告何時準備好?如何在兩頁之間切換? – Josh 2010-05-04 16:42:36

+0

好吧,我明白了,ReportViewer是在一個單獨的控件中。使用ReportViewer控件創建一個頁面。您的主頁將具有圖像。執行jquery.load()將ReportViewer頁面加載到圖像所在的div中。該圖像將出現,直到jQuery從Reportviewer頁面獲得響應,此時它會將reportviewer內容加載到div中。 – derek 2010-05-04 19:44:06

+0

嗨德里克 - 你能告訴我一些你的意思嗎?我仍然在學習這 – Josh 2010-05-04 21:44:27