仅当页面加载开始/完成并使用ASP.NET中的数据完成时,如何显示/隐藏加载器?

时间:2018-07-18 10:41:45

标签: javascript jquery asp.net webforms

我正在尝试将bootstrap loader集成到我的ASP.NET页面中。在页面中,有些Datagrid的数据正在后面的代码中填充。我想在页面开始加载时显示加载器,然后在填充所有数据时隐藏加载器。

我已经实现了加载器隐藏和显示,当数据网格发生任何回发/ ajax调用时。在页面的正文中,我在 onload 中调用了 init()函数,如下所示:

<body ms_positioning="GridLayout" onkeydown="" onload="init();">

并且在init()中,我为 PageRequestManager add_beginRequest add_endRequest 注册了处理程序,如下所示:

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

这很好。当网格中开始发生任何更改时,它将打开加载程序,并在更新完成时隐藏加载程序。

但是,当页面不回发时,意味着页面已完全刷新,我在 document.ready()中包含了一个加载器。

$(document).ready(function () {
    $("#loader").on("shown.bs.modal", function (e) {
        setTimeout(function () {
            setInitialScreen();
            $('#loader').modal('hide');
        }, 1000);
    }).modal({
        backdrop: 'static',
        keyboard: false
    });
});

但是,问题是,有时加载器会打开得很晚,也可能早藏起来。但是,仍然有一些数据将从后面的代码中加载。有时,当数据已经填充后,加载程序就会打开。

在这种情况下我该怎么办?有什么办法可以解决这种情况?

0 个答案:

没有答案