私は自分のフォームにasp.net UpdatePanelとUpdateProgressコントロールを持っています。私はjQuery BlockUI Pluginまたはjquery自体によって更新進行をモーダルにしようとしています。モーダルasp.net ajaxのudateの進捗状況のためのjqueryを使用して
$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
は、私がUpdatePanelとServer-Side ASP.NET ajaxを使用しているため動作しません。
私はjqueryの内の任意のスタイルの変化イベントがあるのであれば、私はjQuery BlockUI Pluginを使用するために$.blockUI();
または他のソリューションを呼び出すために思ったんだけど、部分ポストバックでdisplay: block
からdisplay: none
からわずかのUpdateProgress DISPLYスタイルの変化に気づきました
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(initializeRequest);
prm.add_pageLoaded(pageLoaded);
var blockTimeout = null;
function initializeRequest(sender, args) {
blockTimeout = window.setTimeout($.blockUI, 500);
}
function pageLoaded(sender, args) {
clearTimeout(blockTimeout);
$.unblockUI();
}
</script>
タイムアウトを避けることができます:asp.netのUpdatePanelのとのUpdateProgress
@Yriy:エラー時に$ .unblockUI()メソッドを呼び出す方法はありますか? – Mostafa
@Mostafa、はい、PageRequestManagerのendRequestイベントハンドラを使用して、pageLoad関数の代わりにunblockUIメソッドを呼び出すことができます –