2010-05-04 4 views
1

Вот моя полная проблема, поэтому, если у кого есть какие-либо идеи или вы можете помочь, сообщите мне. У меня есть веб-сайт, который будет генерировать отчет, и этот отчет занимает некоторое время для создания. Существует файл MyReport.ASPX, в котором есть элемент form1, Image1 и ReportViewer. Также есть файл MyReport.cs с кодом C# для создания строки HTMLText, отображаемой элементом управления ReportViewer. Когда я вытаскиваю сайт в браузере, файл 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 отображает изображение, после загрузки страницы сделайте ajax-вызов вашего веб-сервиса (или метода страницы) с помощью js или jquery и обновите страницу (удалите изображение и отобразите отчет, возвращенный из веб-службы) ,

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

Затем с помощью JQuery в document.ready события:

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

Привет Derek- Bare со мной, как я не могу понять вас правильно. Я могу удалить ReportViewer из MyReport.ASPX и оставить Image1 оставшимся. Если я создам новую страницу ASPX и просто имею в ней элемент управления ReportViewer, что мне нужно делать оттуда? Как я могу узнать, когда отчет готов? Как переключаться между двумя страницами? – Josh

+0

ok Я вижу, ReportViewer находится в отдельном элементе управления. Создайте страницу с помощью элемента управления ReportViewer. На главной странице будет изображение. Сделайте jquery.load(), чтобы загрузить страницу ReportViewer в div, где находится изображение. Изображение появится до тех пор, пока jquery не получит ответ со страницы Reportviewer, после чего он загрузит содержимое reportviewer в div. – derek

+0

Привет, Дерек. Можете ли вы показать мне какой-то код о том, что вы имеете в виду? Я все еще учусь это – Josh

Смежные вопросы