sender._postBackSettings.sourceElement не определен - PullRequest
0 голосов
/ 07 ноября 2011

Это то, что я пытаюсь сделать -

Использование 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 не определен

Есть идеи?

Спасибо!

Ник

1 Ответ

0 голосов
/ 08 ноября 2011

По какой-то причине sender._postBackSettings.sourceElement продолжал возвращаться как NULL в EndRequestHandler.

Я определил глобальную переменную, присвоил ей значение в BeginRequestHandler и проверил ее значение в EndRequestHandler.
Это решило проблему.

...