【问题标题】:using jquery for modal asp.net ajax udate progress使用 jquery 进行模态 asp.net ajax udate 进度
【发布时间】:2011-10-21 21:03:22
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: jquery asp.net asp.net-ajax updateprogress


    【解决方案1】:

    将此脚本放在 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>
    

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

    【讨论】:

    • @Yriy: 有什么方法可以在出错时调用 $.unblockUI() 方法吗?
    • @Mostafa,是的,您可以使用 PageRequestManager 的 endRequest 事件处理程序来调用 unblockUI 方法而不是 pageLoad 函数
    猜你喜欢
    • 2014-08-16
    • 2011-05-08
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多