2015-06-09 1 views
0

Я создал страницу, которая показывает анимацию, когда начинается операция на стороне сервера. ДИВ выглядит следующим образом:Asp.net/JQuery показать/скрыть анимированный gif перед загрузкой

<div id="loading" style="display: none;"> 
     <img id="loading-image" 
     src="../../Images/waiting-animation-extra.GIF" alt="Loading..." /> 
    </div> 

Мой клиент сценарий выглядит следующим образом

$(document).ready(function() { 
     $("#btnExportToExcel").click(function() {    
      $('#loading').show();     
     }); 
    }); 

Мой Css выглядит следующим образом:

<style type="text/css"> 
    #loading { 
     width: 100%; 
     height: 100%; 
     top: 0px; 
     left: 0px; 
     position: fixed; 
     display: block; 
     opacity: 0.7; 
     background-color: #fff; 
     z-index: 99; 
     text-align: center; 
    } 

    #loading-image { 
     position: absolute; 
     top: 40%; 
     left: 45%; 
     z-index: 100; 
    } 
</style> 

Когда я нажимаю мою кнопку жерех, запускается анимация и отчет подготовлен. Проблема в том, что я хотел бы скрыть анимацию при загрузке отчета. Однако, когда загрузка выполнена, .gif просто зависает. Я попытался ScriptManager.RegisterStartupScript(this, GetType(), "DoHide", "$("#loading").hide();", true); в коде позади в различных точках, но это, кажется, зависит от этого кода:

DateTime time = DateTime.Now; 

    Response.Clear(); 
    Response.AddHeader("content-disposition" 
      ,string.Format("attachment;filename=Equipement Man Game Played {0}.xls" 
     ,time.ToShortDateString())); 
    Response.ContentType = "application/vnd.xls"; 
    System.IO.StringWriter writer = new System.IO.StringWriter(); 
    System.Web.UI.HtmlTextWriter html = new HtmlTextWriter(writer); 
    gdvData.RenderControl(html);  
    Response.Write(writer.ToString()); 
    Response.End(); 

Response.Write и Repsonse.End остановить .hide(). Все, что мне нужно сделать, это показать анимацию, которая будет запущена после нажатия кнопки и остановки после работы базы данных на стороне сервера и загрузки xls. Я готов принять другой подход.

ответ

1

От кнопки asp.net это не будет работать так, как вы ожидаете. Вам нужно называть свою загрузку с помощью AJAX с обычной кнопки HTML и на успех AJAX вы можете скрыть свой div с изображением.

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