我正在尝试将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
});
});
但是,问题是,有时加载器会打开得很晚,也可能早藏起来。但是,仍然有一些数据将从后面的代码中加载。有时,当数据已经填充后,加载程序就会打开。
在这种情况下我该怎么办?有什么办法可以解决这种情况?