Сначала идет загрузка страницы
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
pnlLoading.Visible = true;
}
Второй раз, когда у меня есть панель обновлений, я использую Update Progress для автоматической обработки.
В-третьих, для вызовов ajax с использованием jQuery.
Когда я собираюсь сделать вызов ajax, я использую это
$('#<%=updProgress.ClientID %>').css("display", "block");
и когда вызов ajax заканчивается, я использую это
$('#<%=updProgress.ClientID %>').css("display", "none");
Вот мой индикатор загрузки в разметке. Эти два находятся сразу после тега body.
<asp:Panel ID="pnlLoading" runat="server" Visible="true">
<div class="progressBackgroundFilter">
</div>
<div class="processMessage">
<img src="/_layouts/Img/ajax-loader.gif" alt="Loading" />
</div>
</asp:Panel>
<asp:UpdateProgress ID="updProgress" runat="server">
<ProgressTemplate>
<div class="progressBackgroundFilter">
</div>
<div class="processMessage">
<img src="/_layouts/Img/ajax-loader.gif" alt="Loading" />
</div>
</ProgressTemplate>
</asp:UpdateProgress>
И когда страница загружена, я использую это
$(document).ready(function () {
var objdiv = $('#<%=pnlLoading.ClientID%>');
if (objdiv) {
objdiv.css('visibility', 'hidden');
}
$('#<%=updProgress.ClientID%>').css("display", "none");
});
Надеюсь, это поможет