Это то, что я пытаюсь сделать -
Использование 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 не определен
Есть идеи?
Спасибо!
Ник