次のコードはうまく機能します:
<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>
ただし、応答が添付ファイルを返す場合(たとえば、ReportViewerコントロールからのPDF):
Response.AddHeader("Content-Disposition", "attachment; filename=some.pdf")
EndRequest()は起動せず、「progress」カーソルはリセットされません。Javascript呼び出し、例えば
ScriptManager.RegisterStartupScript(this, this.GetType(), "close",
"parent.EndRequest(...);", true);
トリックを実行しますが、コンテンツの配置のために不可能です。これを正しく行う方法を考えられますか?PDFのレンダリング中に待機カーソルを表示し、PDFが表示されたら通常のカーソルに戻りますか?ここではC#コンテキストを想定していますが、問題は言語またはプラットフォーム固有ではありません。