отправитель._postBackSettings.SourceElement не определен

#asp.net #jquery #asp.net-ajax #updatepanel #pagerequestmanager

#asp.net #jquery #asp.net-ajax #панель обновления #pagerequestmanager

Вопрос:

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

Используя jQuery, когда документ готов, и если страница не является обратной отправкой, я выполняю обратную отправку вручную для updatepanel для извлечения данных из базы данных.

Пока панель обновления получает данные, я представляю процесс обновления, который я скрываю, когда завершается работа конкретной панели обновления. Я также хочу «ЗАБЛОКИРОВАТЬ» экран от любого взаимодействия. После загрузки данных у меня появляются дополнительные кнопки в форме, и я хочу заблокировать все в случае любой частичной обратной отправки.

Вот код:

 $(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 и заблокированным экраном.
Я получаю следующую ошибку в консоли ошибок браузера: отправитель._postBackSettings.SourceElement не определен

Есть идеи?

Спасибо!

Ник

Ответ №1:

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

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