0

这就是我想要做的 -

当文档准备好并且页面不是回发时使用 jQuery,我会为更新面板发出手动回发以从数据库中检索数据。

当更新面板获取数据时,我会呈现一个更新进度,当特定更新面板完成时我会隐藏它。我还想“阻止”任何交互的屏幕。加载数据后,我在表单上有额外的按钮,我想阻止任何部分回发的情况。

这是代码:

$(document).ready(function ()
       {
            if(<% =(Not Page.isPostBack).ToString().ToLower() %>)
            {
            __doPostBack('upShipping');
            }
        }
       function pageLoad() {
            var prm = Sys.WebForms.PageRequestManager.getInstance();
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);
       }
function BeginRequestHandler(sender, args)
            {
                $('.blur').css("display", "block");
                if (args._postBackElement.id == 'upShipping') {
                    $get('divCalculating').className = 'Show';
                }
            }


       function EndRequestHandler(sender, args)
            {
              $('.blur').css("display", "none");
                if (sender._postBackSettings.sourceElement.id == 'upShipping')
                {
                    $get('divCalculating').className = 'Hidden';
                }
              } 

如果我不在屏幕上“点击”,一切都会很好。但是,如果我只是在更新面板更新时单击屏幕上的任意位置,则“EndRequestHandler”不会触发,并且我会被加载 gif 和阻塞的屏幕所困。我在浏览器的错误控制台中收到以下错误:sender._postBackSettings.sourceElement is undefined

有任何想法吗?

谢谢!

缺口

4

1 回答 1

0

出于某种原因sender._postBackSettings.sourceElement,在EndRequestHandler.

BeginRequestHandler我定义了一个全局变量,在 中为其分配了一个值,并在EndRequestHandler.
这解决了问题。

于 2011-11-08T12:29:29.197 回答