2017-06-01 112 views
0

我有gridview其中有700行。我已经把页面上的一个AJAX加载器在这link。加载器消失时,仍然有2-3分钟加载数据完全。我想显示加载器,直到页面加载完全。我怎样才能做到这一点?显示加载器,直到整个页面完全加载在asp.net

<script type="text/javascript"> 
       function ShowProgress() { 

        setTimeout(function() { 
         var modal = $('<div />'); 
         modal.addClass("modal"); 
         $('body').append(modal); 
         var loading = $(".loading"); 
         loading.show(); 
         var top = Math.max($(window).height()/2 - loading[0].offsetHeight/2, 0); 
         var left = Math.max($(window).width()/2 - loading[0].offsetWidth/2, 0); 
         loading.css({ top: top, left: left }); 
        }, 1000); 
       } 

       $(document).ready(function() { 
        $('#Button1').click(function() { 
         ShowProgress(); 
        }); 
       }); 
      </script> 
<style type="text/css"> 
    .modal 
    { 
     position: fixed; 
     top: 0; 
     left: 0; 
     background-color: black; 
     z-index: 99; 
     opacity: 0.8; 
     filter: alpha(opacity=80); 
     -moz-opacity: 0.8; 
     min-height: 100%; 
     width: 100%; 
    } 

    .loading 
    { 
     font-family: Arial; 
     font-size: 10pt; 
     border: 5px solid #67CFF5; 
     width: 200px; 
     height: 100px; 
     display: none; 
     position: fixed; 
     background-color: White; 
     z-index: 999; 
    } 

</style> 
<div class="loading" align="center"> 
    Loading. Please wait.<br /> 
    <br /> 
    <img src="loader.gif" alt="" /> 

</div> 
+0

使用'有没有AJAX call.loader显示在按钮的单击事件在客户端 – TheUknown

+0

?你怎么知道网格数据绑定成功?你使用什么网格?您可以使用网格绑定事件来移除加载 –

+0

那么如何填充网格数据.done'功能 – TheUknown

回答

1

在发送ajax请求之前调用加载函数并在接收到响应后隐藏加载程序,或者在您的情况下数据绑定到gridview。

displayLoader(); 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json", 
     url: url 
    }).done(function (data) { 
     //call is successful 
     hideLoader(); 
    }).fail(function() { 
     //call has failed 
     hideLoader(); 
    }).always(function() { 
     //always execute despite failure/success 
     hideLoader(); 
    }); 
+0

您应该仅在'.always()'事件中调用'hideLoader()',因为无论Ajax调用完成还是失败,总是调用_always_。 – doutriforce

+0

在客户端的按钮单击事件中没有显示ajax call.loader。我在我的问题中粘贴了实际代码 –

+0

@priyathapliyal,那么为什么还要为Ajax添加标签呢? – doutriforce

0

因此,需要5-7分钟才能完全加载这些行?你为什么不先用ajax创建分页?反正,试试这个:

$.ajax({ 
    type: 'POST', 
    url: "yourUrl", 
    contentType: "application/json", 
    context: document.body 
    }).done(function() { 
    $(".loading").hide(); 
    }); 
相关问题