Хорошо работает следующий код:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
function InitializeRequest(sender, args) {
document.body.style.cursor = 'progress';
}
function EndRequest(sender, args) {
document.body.style.cursor = 'default';
}
</script>
Однако, когда ответ возвращает вложение (например, PDF из элемента управления ReportViewer):
Response.AddHeader("Content-Disposition", "attachment; filename=some.pdf")
EndRequest () никогда не срабатывает, и курсор прогресса не сбрасывается.
Вызов Javascript, например
ScriptManager.RegisterStartupScript(this, this.GetType(), "close",
"parent.EndRequest(...);", true);
может помочь, но это невозможно из-за расположения содержимого.
Можете ли вы придумать способ сделать это правильно - показать курсор ожидания во время рендеринга PDF и вернуться к нормальному курсору, когда PDF отображается? Здесь я предполагаю контекст C #, но проблема не в языке или платформе.