javascript - 如何在下拉更改事件(SelectedIndexChange)上显示加载图像

标签 javascript asp.net asp.net-ajax

我的页面上有一个下拉列表和网格。更改下拉值时,网格会刷新。绑定(bind)到网格的数据是从数据库中获取的。当我更改下拉值时,我应该能够看到加载屏幕上的图像。加载数据后,加载图像应该消失。我将如何实现这一点? 任何建议都会有帮助..

下面是我用于提交点击的代码。我应该如何修改它以处理下拉更改事件。

    <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 });
            }, 200);
        }

$('form').live("submit", function () {
    ShowProgress();
});

最佳答案

当然,您可以在发出请求之前显示它,并在完成后隐藏它:

HTML:

<div id='loading-image'>
  <img src='loadinggraphic.gif'/>
</div>

脚本:

$('#loading-image').show();
$.ajax({
      url: 'data.php',
      cache: false,
      success: function(data){
        $('.info').html(data);
      },
      complete: function(){
        $('#loading-image').hide();
      }
    });

在这里,在 data.php 中,您可以放置​​从数据库获取数据的逻辑。

我通常更喜欢将其绑定(bind)到全局 ajaxStart 和 ajaxStop 事件的更通用的解决方案,这样它就会显示在所有 ajax 事件中:

$('#loading-image').bind('ajaxStart', function(){
    $(this).show();
}).bind('ajaxStop', function(){
    $(this).hide();
});

关于javascript - 如何在下拉更改事件(SelectedIndexChange)上显示加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36615879/

相关文章:

Asp.net 动态验证器在 Chrome 或 Safari 中不起作用

javascript - 使用 jQuery 向服务器发送 AJAX 请求

c# - ThreadAbortException 有什么特别之处?

asp.net - 动态添加CalendarExtender到Textbox子类服务器控件?

c# - 在代码隐藏 asp.net 中默认选中的复选框列表项

c# - 在服务器上均匀上传文件

javascript - IE 缓存 WCF 结果 - 我可以以某种方式解决这个问题吗?

javascript - 用于获取 url 路径名的正则表达式

javascript - 动态div底部

javascript - ReactJS:循环对象