1

我的表单上有 asp.net UpdatePanel 和 UpdateProgress 控件。我正在尝试通过jQuery BlockUI Plugin或 jquery 本身来制作更新进度模式。

$(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);不起作用,因为我使用的是 UpdatePanel 和服务器端 ASP.NET ajax 。

我注意到在部分回发中只是 UpdateProgress 显示样式更改display: nonedisplay: block

所以我想知道在 jquery 中是否有任何样式更改事件要调用$.blockUI();或任何其他解决方案,以便将jQuery BlockUI 插件与 asp.net updatepanel 和 UpdateProgress 一起使用

4

1 回答 1

2

将此脚本放在 ScriptManager 控件下方:

<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>

超时允许避免非常短的异步请求阻塞页面。

于 2011-10-21T22:13:56.263 回答